This program may help creating ICOM_ macro. (but this code doesn't have portability, so some modification may be required.)
for example, if give the following codes to stdin, we gets ICOM_ macros for IPersist.
class IUnknown { public: HRESULT QueryInterface( REFIID riid, LPVOID *ppvObj) ; ULONG AddRef() ; ULONG Release() ; }; export interface IPersist : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetClassID( CLSID *pClassID ); };