GUID guid;
HRESUIT hRet == ::CoCreateGuid(&guid);
struct { unsigned long Data1; unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8]; } GUID;
LPOLESTR lpszOleUuidstr = NULL;
StringFromCLSID(CLSID_ImageOle,&lpszOleUuidstr);
LPTSTR lpszUuidstr = OLE2T(lpszOleUuidstr);
CoTaskMemFree(lpszOleUuidstr);
TCHAR strCLSID[48];
StringFromGUID2(guid,strCLSID,48);
WINOLEAPI StringFromIID(REFIID rclsid,LPOLESTR * lplpsz);
WINOLEAPI IIDFromString(LPOLESTR lpsz,LPIID lpiid);
HRESULT CoGetMalloc(DWORD dwMemContext,LPMALLOC* ppMalloc);