windows-nt/Source/XPSP1/NT/com/oleutest/letest/ole2ui/olethunk.h
2020-09-26 16:20:57 +08:00

194 lines
4.1 KiB
C

#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_