|
|
#ifndef _OLETHUNK_H_
#define _OLETHUNK_H_
//
// String Conversion Helpers
//
STDAPI_(void) CopyAndFreeOLESTR(LPOLESTR polestr, char **pszOut);
STDAPI_(void) CopyAndFreeSTR(LPSTR polestr, LPOLESTR *pszOut);
STDAPI_(LPOLESTR) CreateOLESTR(const char *pszIn);
STDAPI_(LPSTR) CreateSTR(LPCOLESTR pszIn);
#define CREATEOLESTR(x, y) LPOLESTR x = CreateOLESTR(y);
#define CREATESTR(x, y) LPSTR x = CreateSTR(y);
#define FREEOLESTR(x) CopyAndFreeOLESTR(x, NULL);
#define FREESTR(x) CopyAndFreeSTR(x, NULL);
//
// OLE API Thunks
//
STDAPI_(void) CLSIDFromStringA(LPSTR pszClass, LPCLSID pclsid);
STDAPI CLSIDFromProgIDA(LPCSTR lpszProgID, LPCLSID lpclsid);
STDAPI CreateFileMonikerA(LPSTR lpszPathName, LPMONIKER FAR* ppmk);
STDAPI CreateItemMonikerA( LPSTR lpszDelim, LPSTR lpszItem, LPMONIKER FAR* ppmk);
STDAPI GetClassFileA(LPCSTR szFilename, CLSID FAR* pclsid);
STDAPI MkParseDisplayNameA( LPBC pbc, LPSTR szUserName, ULONG FAR * pchEaten, LPMONIKER FAR * ppmk);
STDAPI OleCreateFromFileA( REFCLSID rclsid, LPCSTR lpszFileName, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
STDAPI OleCreateLinkToFileA( LPCSTR lpszFileName, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
STDAPI_(HGLOBAL) OleGetIconOfClassA( REFCLSID rclsid, LPSTR lpszLabel, BOOL fUseTypeAsLabel);
STDAPI_(HGLOBAL) OleGetIconOfFileA(LPSTR lpszPath, BOOL fUseFileAsLabel);
STDAPI_(HGLOBAL) OleMetafilePictFromIconAndLabelA( HICON hIcon, LPSTR lpszLabel, LPSTR lpszSourceFile, UINT iIconIndex);
STDAPI OleRegGetUserTypeA( REFCLSID clsid, DWORD dwFormOfType, LPSTR FAR* pszUserType);
STDAPI ProgIDFromCLSIDA(REFCLSID clsid, LPSTR FAR* lplpszProgID);
STDAPI ReadFmtUserTypeStgA( LPSTORAGE pstg, CLIPFORMAT FAR* pcf, LPSTR FAR* lplpszUserType);
STDAPI StgCreateDocfileA( LPCSTR pwcsName, DWORD grfMode, DWORD reserved, IStorage FAR * FAR *ppstgOpen);
STDAPI StgOpenStorageA( LPCSTR pwcsName, IStorage FAR *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage FAR * FAR *ppstgOpen);
STDAPI StgSetTimesA( LPSTR lpszName, FILETIME const FAR* pctime, FILETIME const FAR* patime, FILETIME const FAR* pmtime);
STDAPI_(void) StringFromCLSIDA(REFCLSID rclsid, LPSTR *lplpszCLSID);
STDAPI WriteFmtUserTypeStgA( LPSTORAGE pstg, CLIPFORMAT cf, LPSTR lpszUserType);
//
// Method Thunks
//
STDAPI CallIMonikerGetDisplayNameA( LPMONIKER lpmk, IBindCtx *pbc, IMoniker *pmkToLeft, LPSTR *ppszDisplayName);
STDAPI CallIOleLinkGetSourceDisplayNameA( IOleLink FAR *polelink, LPSTR *ppszDisplayName);
STDAPI CallIOleLinkSetSourceDisplayNameA( IOleLink FAR *polelink, LPCSTR pszStatusText);
STDAPI CallIOleInPlaceFrameSetStatusTextA( IOleInPlaceFrame *poleinplc, LPCSTR pszStatusText); STDAPI CallIOleInPlaceUIWindowSetActiveObjectA( IOleInPlaceUIWindow FAR *lpthis, IOleInPlaceActiveObject *pActiveObject, LPCSTR pszObjName);
STDAPI CallIOleObjectGetUserTypeA( LPOLEOBJECT lpOleObject, DWORD dwFormOfType, LPSTR *pszUserType);
STDAPI CallIOleObjectSetHostNamesA( LPOLEOBJECT lpOleObject, LPCSTR szContainerApp, LPCSTR szContainerObj);
STDAPI CallIStorageCreateStorageA( LPSTORAGE lpStg, const char *pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage **ppstg);
STDAPI CallIStorageDestroyElementA( LPSTORAGE lpStg, LPSTR pszName);
STDAPI CallIStorageOpenStorageA( LPSTORAGE lpStg, const char *pszName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstg);
STDAPI CallIStorageCreateStreamA( LPSTORAGE lpStg, LPSTR pszName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream **ppstm);
STDAPI CallIStorageOpenStreamA( LPSTORAGE lpStg, LPSTR pszName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream **ppstm);
#endif // _OLETHUNK_H_
|