Skip to content

Instantly share code, notes, and snippets.

@Varriount
Created October 12, 2013 19:55
Show Gist options
  • Save Varriount/6954172 to your computer and use it in GitHub Desktop.
Save Varriount/6954172 to your computer and use it in GitHub Desktop.
#define FOR_EACH0(objName, pDisp, szMember) { \
IEnumVARIANT * xx_pEnum_xx = NULL; \
DISPATCH_OBJ(objName); \
if (SUCCEEDED(dhEnumBegin(&xx_pEnum_xx, pDisp, szMember))) { \
while (dhEnumNextObject(xx_pEnum_xx, &objName) == NOERROR) {
#define FOR_EACH1(objName, pDisp, szMember, arg1) { \
IEnumVARIANT * xx_pEnum_xx = NULL; \
DISPATCH_OBJ(objName); \
if (SUCCEEDED(dhEnumBegin(&xx_pEnum_xx, pDisp, szMember, arg1))) { \
while (dhEnumNextObject(xx_pEnum_xx, &objName) == NOERROR) {
#define FOR_EACH2(objName, pDisp, szMember, arg1, arg2) { \
IEnumVARIANT * xx_pEnum_xx = NULL; \
DISPATCH_OBJ(objName); \
if (SUCCEEDED(dhEnumBegin(&xx_pEnum_xx, pDisp, szMember, arg1, arg2))) { \
while (dhEnumNextObject(xx_pEnum_xx, &objName) == NOERROR) {
#define FOR_EACH3(objName, pDisp, szMember, arg1, arg2, arg3) { \
IEnumVARIANT * xx_pEnum_xx = NULL; \
DISPATCH_OBJ(objName); \
if (SUCCEEDED(dhEnumBegin(&xx_pEnum_xx, pDisp, szMember, arg1, arg2, arg3))) { \
while (dhEnumNextObject(xx_pEnum_xx, &objName) == NOERROR) {
#define FOR_EACH4(objName, pDisp, szMember, arg1, arg2, arg3, arg4) { \
IEnumVARIANT * xx_pEnum_xx = NULL; \
DISPATCH_OBJ(objName); \
if (SUCCEEDED(dhEnumBegin(&xx_pEnum_xx, pDisp, szMember, arg1, arg2, arg3, arg4))) { \
while (dhEnumNextObject(xx_pEnum_xx, &objName) == NOERROR) {
#define FOR_EACH FOR_EACH0
#define ON_FOR_EACH_ERROR(objName) SAFE_RELEASE(objName); }} else {{
#define NEXT(objName) SAFE_RELEASE(objName); }} SAFE_RELEASE(objName); SAFE_RELEASE(xx_pEnum_xx); }
#endif /* ----- DISPHELPER_NO_FOR_EACH ----- */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment