Listing 4: marsamp.h Project header file
#define FLAG_ARRAY_SIZE 256 #ifdef __cplusplus // {BAEA9B70-28E9-11d1-ADD0-006097731D51} DEFINE_GUID(CLSID_SimpleObject, 0xbaea9b70, 0x28e9, 0x11d1, 0xad, 0xd0, 0x0, 0x60, 0x97, 0x73, 0x1d, 0x51); // {005763A0-2850-11d1-ADCD-006097731D51} DEFINE_GUID(IID_ISimpleObject, 0x5763a0, 0x2850, 0x11d1, 0xad, 0xcd, 0x0, 0x60, 0x97, 0x73, 0x1d, 0x51); #undef IMPL #define IMPL #define DECLARE_INTERFACE_PTR(iface, piface) \ interface iface; typedef iface FAR * piface #ifndef IUNKNOWN_METHODS #define IUNKNOWN_METHODS(IPURE) \ STDMETHOD(QueryInterface) \ (THIS_ REFIID riid, LPVOID FAR * ppvObj) IPURE; \ STDMETHOD_(ULONG,AddRef) (THIS) IPURE; \ STDMETHOD_(ULONG,Release) (THIS) IPURE; #endif DECLARE_INTERFACE_PTR(ISimpleObject, LPSIMPLEOBJECT); #define ISIMPLEOBJECT_METHODS(IPURE) \ STDMETHOD(DisplayArray) \ (THIS_ BOOL *) IPURE; \ #undef INTERFACE #define INTERFACE ISimpleObject DECLARE_INTERFACE_(ISimpleObject, IUnknown) { IUNKNOWN_METHODS (PURE) ISIMPLEOBJECT_METHODS (PURE) }; #define PRINTONFAILURE(hr, str) if (FAILED(hr)) printf(str, hr) #define RETURNONFAILURE(hr, str) \ if (FAILED(hr)) {printf(str, hr); return hr;} #endif //End of File