home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- **
- ** OLE 2.0 Standard Utilities
- **
- ** olestd.h
- **
- ** This file contains file contains data structure defintions,
- ** function prototypes, constants, etc. for the common OLE 2.0
- ** utilities.
- ** These utilities include the following:
- ** Debuging Assert/Verify macros
- ** HIMETRIC conversion routines
- ** reference counting debug support
- ** OleStd API's for common compound-document app support
- **
- *************************************************************************/
- /*
- * C/C++ Run Time Library - Version 6.5
- *
- * Copyright (c) 1994 by Borland International
- * All Rights Reserved.
- *
- */
-
- #if !defined( _OLESTD_H_ )
- #define _OLESTD_H_
-
- // String table defines...
- #define IDS_OLESTDNOCREATEFILE 700
- #define IDS_OLESTDNOOPENFILE 701
- #define IDS_OLESTDDISKFULL 702
-
-
- #ifndef RC_INVOKED
-
- //#pragma message ("INCLUDING OLESTD.H from " __FILE__)
-
- #if defined( __TURBOC__ ) || defined( WIN32 )
- #define _based(a)
- #endif
-
- #include <dos.h> // needed for filetime
- #include <commdlg.h> // needed for LPPRINTDLG
- #include <shellapi.h> // needed for HKEY
-
- /*
- * Some C interface declaration stuff
- */
-
- #if ! defined(__cplusplus)
- typedef struct tagINTERFACEIMPL {
- IUnknownVtbl FAR* lpVtbl;
- LPVOID lpBack;
- int cRef; // interface specific ref count.
- } INTERFACEIMPL, FAR* LPINTERFACEIMPL;
-
- #define INIT_INTERFACEIMPL(lpIFace, pVtbl, pBack) \
- ((lpIFace)->lpVtbl = pVtbl, \
- ((LPINTERFACEIMPL)(lpIFace))->lpBack = (LPVOID)pBack, \
- ((LPINTERFACEIMPL)(lpIFace))->cRef = 0 \
- )
-
- #if defined( _DEBUG )
- #define OleDbgQueryInterfaceMethod(lpUnk) \
- ((lpUnk) != NULL ? ((LPINTERFACEIMPL)(lpUnk))->cRef++ : 0)
- #define OleDbgAddRefMethod(lpThis, iface) \
- ((LPINTERFACEIMPL)(lpThis))->cRef++
-
- #if _DEBUGLEVEL >= 2
- #define OleDbgReleaseMethod(lpThis, iface) \
- (--((LPINTERFACEIMPL)(lpThis))->cRef == 0 ? \
- OleDbgOut("\t" iface "* RELEASED (cRef == 0)\r\n"),1 : \
- (((LPINTERFACEIMPL)(lpThis))->cRef < 0) ? \
- ( \
- DebugBreak(), \
- OleDbgOut( \
- "\tERROR: " iface "* RELEASED TOO MANY TIMES\r\n") \
- ),1 : \
- 1)
-
- #else // if _DEBUGLEVEL < 2
- #define OleDbgReleaseMethod(lpThis, iface) \
- (--((LPINTERFACEIMPL)(lpThis))->cRef == 0 ? \
- 1 : \
- (((LPINTERFACEIMPL)(lpThis))->cRef < 0) ? \
- ( \
- OleDbgOut( \
- "\tERROR: " iface "* RELEASED TOO MANY TIMES\r\n") \
- ),1 : \
- 1)
-
- #endif // if _DEBUGLEVEL < 2
-
- #else // ! defined (_DEBUG)
-
- #define OleDbgQueryInterfaceMethod(lpUnk)
- #define OleDbgAddRefMethod(lpThis, iface)
- #define OleDbgReleaseMethod(lpThis, iface)
-
- #endif // if defined( _DEBUG )
-
- #endif // ! defined(__cplusplus)
-
- /*
- * Some docfiles stuff
- */
-
- #define STGM_DFRALL (STGM_READWRITE | STGM_TRANSACTED | STGM_SHARE_DENY_WRITE)
- #define STGM_DFALL (STGM_READWRITE | STGM_TRANSACTED | STGM_SHARE_EXCLUSIVE)
- #define STGM_SALL (STGM_READWRITE | STGM_SHARE_EXCLUSIVE)
-
- /*
- * Some moniker stuff
- */
-
- // Delimeter used to separate ItemMoniker pieces of a composite moniker
- #if defined( _MAC )
- #define OLESTDDELIM ":"
- #else
- #define OLESTDDELIM "\\"
- #endif
-
- /*
- * Some Concurrency stuff
- */
-
- /* standard Delay (in msec) to wait before retrying an LRPC call.
- ** this value is returned from IMessageFilter::RetryRejectedCall
- */
- #define OLESTDRETRYDELAY (DWORD)5000
-
- /* Cancel the pending outgoing LRPC call.
- ** this value is returned from IMessageFilter::RetryRejectedCall
- */
- #define OLESTDCANCELRETRY (DWORD)-1
-
- /*
- * Some Icon support stuff.
- *
- * The following API's are now OBSOLETE because equivalent API's have been
- * added to the OLE2.DLL library
- * GetIconOfFile superceeded by OleGetIconOfFile
- * GetIconOfClass superceeded by OleGetIconOfClass
- * OleUIMetafilePictFromIconAndLabel
- * superceeded by OleMetafilePictFromIconAndLabel
- *
- * The following macros are defined for backward compatibility with previous
- * versions of the OLE2UI library. It is recommended that the new Ole* API's
- * should be used instead.
- */
- #define GetIconOfFile(hInst, lpszFileName, fUseFileAsLabel) \
- OleGetIconOfFile(lpszFileName, fUseFileAsLabel)
-
- #define GetIconOfClass(hInst, rclsid, lpszLabel, fUseTypeAsLabel) \
- OleGetIconOfClass(rclsid, lpszLabel, fUseTypeAsLabel)
-
- #define OleUIMetafilePictFromIconAndLabel(hIcon,pszLabel,pszSourceFile,iIcon)\
- OleMetafilePictFromIconAndLabel(hIcon, pszLabel, pszSourceFile, iIcon)
-
-
- /*
- * Some Clipboard Copy/Paste & Drag/Drop support stuff
- */
-
- //Macro to set all FormatEtc fields
- #define SETFORMATETC(fe, cf, asp, td, med, li) \
- ((fe).cfFormat=cf, \
- (fe).dwAspect=asp, \
- (fe).ptd=td, \
- (fe).tymed=med, \
- (fe).lindex=li)
-
- //Macro to set interesting FormatEtc fields defaulting the others.
- #define SETDEFAULTFORMATETC(fe, cf, med) \
- ((fe).cfFormat=cf, \
- (fe).dwAspect=DVASPECT_CONTENT, \
- (fe).ptd=NULL, \
- (fe).tymed=med, \
- (fe).lindex=-1)
-
- // Macro to test if two FormatEtc structures are an exact match
- #define IsEqualFORMATETC(fe1, fe2) \
- (OleStdCompareFormatEtc(&(fe1), &(fe2))==0)
-
- // Clipboard format strings
- #define CF_EMBEDSOURCE "Embed Source"
- #define CF_EMBEDDEDOBJECT "Embedded Object"
- #define CF_LINKSOURCE "Link Source"
- #define CF_CUSTOMLINKSOURCE "Custom Link Source"
- #define CF_OBJECTDESCRIPTOR "Object Descriptor"
- #define CF_LINKSRCDESCRIPTOR "Link Source Descriptor"
- #define CF_OWNERLINK "OwnerLink"
- #define CF_FILENAME "FileName"
-
- #define OleStdQueryOleObjectData(lpformatetc) \
- (((lpformatetc)->tymed & TYMED_ISTORAGE) ? \
- NOERROR : ResultFromScode(DV_E_FORMATETC))
-
- #define OleStdQueryLinkSourceData(lpformatetc) \
- (((lpformatetc)->tymed & TYMED_ISTREAM) ? \
- NOERROR : ResultFromScode(DV_E_FORMATETC))
-
- #define OleStdQueryObjectDescriptorData(lpformatetc) \
- (((lpformatetc)->tymed & TYMED_HGLOBAL) ? \
- NOERROR : ResultFromScode(DV_E_FORMATETC))
-
- #define OleStdQueryFormatMedium(lpformatetc, tymd) \
- (((lpformatetc)->tymed & tymd) ? \
- NOERROR : ResultFromScode(DV_E_FORMATETC))
-
- // Make an independent copy of a MetafilePict
- #define OleStdCopyMetafilePict(hpictin, phpictout) \
- (*(phpictout) = OleDuplicateData(hpictin,CF_METAFILEPICT,GHND|GMEM_SHARE))
-
-
- // REVIEW: these need to be added to OLE2.H
- #if !defined( DD_DEFSCROLLINTERVAL )
- #define DD_DEFSCROLLINTERVAL 50
- #endif
-
- #if !defined( DD_DEFDRAGDELAY )
- #define DD_DEFDRAGDELAY 200
- #endif
-
- #if !defined( DD_DEFDRAGMINDIST )
- #define DD_DEFDRAGMINDIST 2
- #endif
-
-
- /* OleStdGetDropEffect
- ** -------------------
- **
- ** Convert a keyboard state into a DROPEFFECT.
- **
- ** returns the DROPEFFECT value derived from the key state.
- ** the following is the standard interpretation:
- ** no modifier -- Default Drop (NULL is returned)
- ** CTRL -- DROPEFFECT_COPY
- ** SHIFT -- DROPEFFECT_MOVE
- ** CTRL-SHIFT -- DROPEFFECT_LINK
- **
- ** Default Drop: this depends on the type of the target application.
- ** this is re-interpretable by each target application. a typical
- ** interpretation is if the drag is local to the same document
- ** (which is source of the drag) then a MOVE operation is
- ** performed. if the drag is not local, then a COPY operation is
- ** performed.
- */
- #define OleStdGetDropEffect(grfKeyState) \
- ( (grfKeyState & MK_CONTROL) ? \
- ( (grfKeyState & MK_SHIFT) ? DROPEFFECT_LINK : DROPEFFECT_COPY ) : \
- ( (grfKeyState & MK_SHIFT) ? DROPEFFECT_MOVE : 0 ) )
-
-
- /* The OLEUIPASTEFLAG enumeration is used by the OLEUIPASTEENTRY structure.
- *
- * OLEUIPASTE_ENABLEICON If the container does not specify this flag for the entry in the
- * OLEUIPASTEENTRY array passed as input to OleUIPasteSpecial, the DisplayAsIcon button will be
- * unchecked and disabled when the the user selects the format that corresponds to the entry.
- *
- * OLEUIPASTE_PASTEONLY Indicates that the entry in the OLEUIPASTEENTRY array is valid for pasting only.
- * OLEUIPASTE_PASTE Indicates that the entry in the OLEUIPASTEENTRY array is valid for pasting. It
- * may also be valid for linking if any of the following linking flags are specified.
- *
- * If the entry in the OLEUIPASTEENTRY array is valid for linking, the following flags indicate which link
- * types are acceptable by OR'ing together the appropriate OLEUIPASTE_LINKTYPE<#> values.
- * These values correspond as follows to the array of link types passed to OleUIPasteSpecial:
- * OLEUIPASTE_LINKTYPE1=arrLinkTypes[0]
- * OLEUIPASTE_LINKTYPE2=arrLinkTypes[1]
- * OLEUIPASTE_LINKTYPE3=arrLinkTypes[2]
- * OLEUIPASTE_LINKTYPE4=arrLinkTypes[3]
- * OLEUIPASTE_LINKTYPE5=arrLinkTypes[4]
- * OLEUIPASTE_LINKTYPE6=arrLinkTypes[5]
- * OLEUIPASTE_LINKTYPE7=arrLinkTypes[6]
- * OLEUIPASTE_LINKTYPE8=arrLinkTypes[7]
- *
- * where,
- * UINT arrLinkTypes[8] is an array of registered clipboard formats for linking. A maximium of 8 link
- * types are allowed.
- */
-
- typedef enum tagOLEUIPASTEFLAG
- {
- OLEUIPASTE_ENABLEICON = 2048, // enable display as icon
- OLEUIPASTE_PASTEONLY = 0,
- OLEUIPASTE_PASTE = 512,
- OLEUIPASTE_LINKANYTYPE = 1024,
- OLEUIPASTE_LINKTYPE1 = 1,
- OLEUIPASTE_LINKTYPE2 = 2,
- OLEUIPASTE_LINKTYPE3 = 4,
- OLEUIPASTE_LINKTYPE4 = 8,
- OLEUIPASTE_LINKTYPE5 = 16,
- OLEUIPASTE_LINKTYPE6 = 32,
- OLEUIPASTE_LINKTYPE7 = 64,
- OLEUIPASTE_LINKTYPE8 = 128
- } OLEUIPASTEFLAG;
-
- /*
- * PasteEntry structure
- * --------------------
- * An array of OLEUIPASTEENTRY entries is specified for the PasteSpecial dialog
- * box. Each entry includes a FORMATETC which specifies the formats that are
- * acceptable, a string that is to represent the format in the dialog's list
- * box, a string to customize the result text of the dialog and a set of flags
- * from the OLEUIPASTEFLAG enumeration. The flags indicate if the entry is
- * valid for pasting only, linking only or both pasting and linking. If the
- * entry is valid for linking, the flags indicate which link types are
- * acceptable by OR'ing together the appropriate OLEUIPASTE_LINKTYPE<#> values.
- * These values correspond to the array of link types as follows:
- * OLEUIPASTE_LINKTYPE1=arrLinkTypes[0]
- * OLEUIPASTE_LINKTYPE2=arrLinkTypes[1]
- * OLEUIPASTE_LINKTYPE3=arrLinkTypes[2]
- * OLEUIPASTE_LINKTYPE4=arrLinkTypes[3]
- * OLEUIPASTE_LINKTYPE5=arrLinkTypes[4]
- * OLEUIPASTE_LINKTYPE6=arrLinkTypes[5]
- * OLEUIPASTE_LINKTYPE7=arrLinkTypes[6]
- * OLEUIPASTE_LINKTYPE8=arrLinkTypes[7]
- * UINT arrLinkTypes[8]; is an array of registered clipboard formats
- * for linking. A maximium of 8 link types are allowed.
- */
-
- typedef struct tagOLEUIPASTEENTRY
- {
- FORMATETC fmtetc; // Format that is acceptable. The paste
- // dialog checks if this format is
- // offered by the object on the
- // clipboard and if so offers it for
- // selection to the user.
- LPCSTR lpstrFormatName; // String that represents the format to the user. Any %s
- // in this string is replaced by the FullUserTypeName
- // of the object on the clipboard and the resulting string
- // is placed in the list box of the dialog. Atmost
- // one %s is allowed. The presence or absence of %s indicates
- // if the result text is to indicate that data is
- // being pasted or that an object that can be activated by
- // an application is being pasted. If %s is
- // present, the result-text says that an object is being pasted.
- // Otherwise it says that data is being pasted.
- LPCSTR lpstrResultText; // String to customize the result text of the dialog when
- // the user selects the format correspoding to this
- // entry. Any %s in this string is replaced by the the application
- // name or FullUserTypeName of the object on
- // the clipboard. Atmost one %s is allowed.
- DWORD dwFlags; // Values from OLEUIPASTEFLAG enum
- DWORD dwScratchSpace; // Scratch space available to be used
- // by routines which loop through an
- // IEnumFORMATETC* to mark if the
- // PasteEntry format is available.
- // this field CAN be left uninitialized.
- } OLEUIPASTEENTRY, *POLEUIPASTEENTRY, FAR *LPOLEUIPASTEENTRY;
-
- #define OLESTDDROP_NONE 0
- #define OLESTDDROP_DEFAULT 1
- #define OLESTDDROP_NONDEFAULT 2
-
-
- /*
- * Some misc stuff
- */
-
- #define EMBEDDINGFLAG "Embedding" // Cmd line switch for launching a srvr
-
- #define HIMETRIC_PER_INCH 2540 // number HIMETRIC units per inch
- #define PTS_PER_INCH 72 // number points (font size) per inch
-
- #if 0
- #if 0
- #define MAP_PIX_TO_LOGHIM(x,ppli) MulDiv(HIMETRIC_PER_INCH, (x), (ppli))
- #define MAP_LOGHIM_TO_PIX(x,ppli) MulDiv((ppli), (x), HIMETRIC_PER_INCH)
- #else
-
- #define MAP_PIX_TO_LOGHIM(pixel, pixelsPerInch) \
- ((ULONG) ((((ULONG)HIMETRIC_PER_INCH) * pixel) / pixelsPerInch))
-
- #define MAP_LOGHIM_TO_PIX(hiMetric, pixelsPerInch) \
- (UINT) ((((double) hiMetric) * pixelsPerInch) / HIMETRIC_PER_INCH)
-
- #endif
- #else
- #define MAP_PIX_TO_LOGHIM(pixel, pixelsPerInch) \
- ((ULONG) ((((ULONG)HIMETRIC_PER_INCH) * pixel + (pixelsPerInch >> 1)) / pixelsPerInch))
- #define MAP_LOGHIM_TO_PIX(hiMetric, pixelsPerInch) \
- (UINT) ((((double) hiMetric) * pixelsPerInch + (HIMETRIC_PER_INCH >> 1)) / HIMETRIC_PER_INCH)
- #endif
-
- // Returns TRUE if all fields of the two Rect's are equal, else FALSE.
- #define AreRectsEqual(lprc1, lprc2) \
- (((lprc1->top == lprc2->top) && \
- (lprc1->left == lprc2->left) && \
- (lprc1->right == lprc2->right) && \
- (lprc1->bottom == lprc2->bottom)) ? TRUE : FALSE)
-
- #define LSTRCPYN(lpdst, lpsrc, cch) \
- (\
- (lpdst)[(cch)-1] = '\0', \
- (cch>1 ? lstrcpyn(lpdst, lpsrc, (cch)-1) : 0)\
- )
-
-
- /****** DEBUG Stuff *****************************************************/
-
- #ifdef _DEBUG
-
- #if !defined( _DBGTRACE )
- #define _DEBUGLEVEL 2
- #else
- #define _DEBUGLEVEL _DBGTRACE
- #endif
-
-
- #if defined( NOASSERT )
-
- #define OLEDBGASSERTDATA
- #define OleDbgAssert(a)
- #define OleDbgAssertSz(a, b)
- #define OleDbgVerify(a)
- #define OleDbgVerifySz(a, b)
-
- #else // ! NOASSERT
-
- #define OLEDBGASSERTDATA \
- static char _based(_segname("_CODE")) _szAssertFile[]= __FILE__;
-
- #define OleDbgAssert(a) \
- (!(a) ? FnAssert(#a, NULL, _szAssertFile, __LINE__) : (HRESULT)1)
-
- #define OleDbgAssertSz(a, b) \
- (!(a) ? FnAssert(#a, b, _szAssertFile, __LINE__) : (HRESULT)1)
-
- #define OleDbgVerify(a) \
- OleDbgAssert(a)
-
- #define OleDbgVerifySz(a, b) \
- OleDbgAssertSz(a, b)
-
- #endif // ! NOASSERT
-
-
- #define OLEDBGDATA_MAIN(szPrefix) \
- char near g_szDbgPrefix[] = szPrefix; \
- OLEDBGASSERTDATA
- #define OLEDBGDATA \
- extern char near g_szDbgPrefix[]; \
- OLEDBGASSERTDATA
-
- #define OLEDBG_BEGIN(lpsz) \
- OleDbgPrintAlways(g_szDbgPrefix,lpsz,1);
-
- #define OLEDBG_END \
- OleDbgPrintAlways(g_szDbgPrefix,"End\r\n",-1);
-
- #define OleDbgOut(lpsz) \
- OleDbgPrintAlways(g_szDbgPrefix,lpsz,0)
-
- #define OleDbgOutNoPrefix(lpsz) \
- OleDbgPrintAlways("",lpsz,0)
-
- #define OleDbgOutRefCnt(lpsz,lpObj,refcnt) \
- OleDbgPrintRefCntAlways(g_szDbgPrefix,lpsz,lpObj,(ULONG)refcnt)
-
- #define OleDbgOutRect(lpsz,lpRect) \
- OleDbgPrintRectAlways(g_szDbgPrefix,lpsz,lpRect)
-
- #define OleDbgOutHResult(lpsz,hr) \
- OleDbgPrintScodeAlways(g_szDbgPrefix,lpsz,GetScode(hr))
-
- #define OleDbgOutScode(lpsz,sc) \
- OleDbgPrintScodeAlways(g_szDbgPrefix,lpsz,sc)
-
- #define OleDbgOut1(lpsz) \
- OleDbgPrint(1,g_szDbgPrefix,lpsz,0)
-
- #define OleDbgOutNoPrefix1(lpsz) \
- OleDbgPrint(1,"",lpsz,0)
-
- #define OLEDBG_BEGIN1(lpsz) \
- OleDbgPrint(1,g_szDbgPrefix,lpsz,1);
-
- #define OLEDBG_END1 \
- OleDbgPrint(1,g_szDbgPrefix,"End\r\n",-1);
-
- #define OleDbgOutRefCnt1(lpsz,lpObj,refcnt) \
- OleDbgPrintRefCnt(1,g_szDbgPrefix,lpsz,lpObj,(ULONG)refcnt)
-
- #define OleDbgOutRect1(lpsz,lpRect) \
- OleDbgPrintRect(1,g_szDbgPrefix,lpsz,lpRect)
-
- #define OleDbgOut2(lpsz) \
- OleDbgPrint(2,g_szDbgPrefix,lpsz,0)
-
- #define OleDbgOutNoPrefix2(lpsz) \
- OleDbgPrint(2,"",lpsz,0)
-
- #define OLEDBG_BEGIN2(lpsz) \
- OleDbgPrint(2,g_szDbgPrefix,lpsz,1);
-
- #define OLEDBG_END2 \
- OleDbgPrint(2,g_szDbgPrefix,"End\r\n",-1);
-
- #define OleDbgOutRefCnt2(lpsz,lpObj,refcnt) \
- OleDbgPrintRefCnt(2,g_szDbgPrefix,lpsz,lpObj,(ULONG)refcnt)
-
- #define OleDbgOutRect2(lpsz,lpRect) \
- OleDbgPrintRect(2,g_szDbgPrefix,lpsz,lpRect)
-
- #define OleDbgOut3(lpsz) \
- OleDbgPrint(3,g_szDbgPrefix,lpsz,0)
-
- #define OleDbgOutNoPrefix3(lpsz) \
- OleDbgPrint(3,"",lpsz,0)
-
- #define OLEDBG_BEGIN3(lpsz) \
- OleDbgPrint(3,g_szDbgPrefix,lpsz,1);
-
- #define OLEDBG_END3 \
- OleDbgPrint(3,g_szDbgPrefix,"End\r\n",-1);
-
- #define OleDbgOutRefCnt3(lpsz,lpObj,refcnt) \
- OleDbgPrintRefCnt(3,g_szDbgPrefix,lpsz,lpObj,(ULONG)refcnt)
-
- #define OleDbgOutRect3(lpsz,lpRect) \
- OleDbgPrintRect(3,g_szDbgPrefix,lpsz,lpRect)
-
- #define OleDbgOut4(lpsz) \
- OleDbgPrint(4,g_szDbgPrefix,lpsz,0)
-
- #define OleDbgOutNoPrefix4(lpsz) \
- OleDbgPrint(4,"",lpsz,0)
-
- #define OLEDBG_BEGIN4(lpsz) \
- OleDbgPrint(4,g_szDbgPrefix,lpsz,1);
-
- #define OLEDBG_END4 \
- OleDbgPrint(4,g_szDbgPrefix,"End\r\n",-1);
-
- #define OleDbgOutRefCnt4(lpsz,lpObj,refcnt) \
- OleDbgPrintRefCnt(4,g_szDbgPrefix,lpsz,lpObj,(ULONG)refcnt)
-
- #define OleDbgOutRect4(lpsz,lpRect) \
- OleDbgPrintRect(4,g_szDbgPrefix,lpsz,lpRect)
-
- #else // !_DEBUG
-
- #define OLEDBGDATA_MAIN(szPrefix)
- #define OLEDBGDATA
- #define OleDbgAssert(a)
- #define OleDbgAssertSz(a, b)
- #define OleDbgVerify(a) (a)
- #define OleDbgVerifySz(a, b) (a)
- #define OleDbgOutHResult(lpsz,hr)
- #define OleDbgOutScode(lpsz,sc)
- #define OLEDBG_BEGIN(lpsz)
- #define OLEDBG_END
- #define OleDbgOut(lpsz)
- #define OleDbgOut1(lpsz)
- #define OleDbgOut2(lpsz)
- #define OleDbgOut3(lpsz)
- #define OleDbgOut4(lpsz)
- #define OleDbgOutNoPrefix(lpsz)
- #define OleDbgOutNoPrefix1(lpsz)
- #define OleDbgOutNoPrefix2(lpsz)
- #define OleDbgOutNoPrefix3(lpsz)
- #define OleDbgOutNoPrefix4(lpsz)
- #define OLEDBG_BEGIN1(lpsz)
- #define OLEDBG_BEGIN2(lpsz)
- #define OLEDBG_BEGIN3(lpsz)
- #define OLEDBG_BEGIN4(lpsz)
- #define OLEDBG_END1
- #define OLEDBG_END2
- #define OLEDBG_END3
- #define OLEDBG_END4
- #define OleDbgOutRefCnt(lpsz,lpObj,refcnt)
- #define OleDbgOutRefCnt1(lpsz,lpObj,refcnt)
- #define OleDbgOutRefCnt2(lpsz,lpObj,refcnt)
- #define OleDbgOutRefCnt3(lpsz,lpObj,refcnt)
- #define OleDbgOutRefCnt4(lpsz,lpObj,refcnt)
- #define OleDbgOutRect(lpsz,lpRect)
- #define OleDbgOutRect1(lpsz,lpRect)
- #define OleDbgOutRect2(lpsz,lpRect)
- #define OleDbgOutRect3(lpsz,lpRect)
- #define OleDbgOutRect4(lpsz,lpRect)
-
- #endif // _DEBUG
-
-
- /*************************************************************************
- ** Function prototypes
- *************************************************************************/
-
-
- //OLESTD.C
- STDAPI_(int) SetDCToAnisotropic(HDC hDC, LPRECT lprcPhysical, LPRECT lprcLogical, LPRECT lprcWindowOld, LPRECT lprcViewportOld);
- STDAPI_(int) SetDCToDrawInHimetricRect(HDC, LPRECT, LPRECT, LPRECT, LPRECT);
- STDAPI_(int) ResetOrigDC(HDC, int, LPRECT, LPRECT);
-
- STDAPI_(int) XformWidthInHimetricToPixels(HDC, int);
- STDAPI_(int) XformWidthInPixelsToHimetric(HDC, int);
- STDAPI_(int) XformHeightInHimetricToPixels(HDC, int);
- STDAPI_(int) XformHeightInPixelsToHimetric(HDC, int);
-
- STDAPI_(void) XformRectInPixelsToHimetric(HDC, LPRECT, LPRECT);
- STDAPI_(void) XformRectInHimetricToPixels(HDC, LPRECT, LPRECT);
- STDAPI_(void) XformSizeInPixelsToHimetric(HDC, LPSIZEL, LPSIZEL);
- STDAPI_(void) XformSizeInHimetricToPixels(HDC, LPSIZEL, LPSIZEL);
- STDAPI_(int) XformWidthInHimetricToPixels(HDC, int);
- STDAPI_(int) XformWidthInPixelsToHimetric(HDC, int);
- STDAPI_(int) XformHeightInHimetricToPixels(HDC, int);
- STDAPI_(int) XformHeightInPixelsToHimetric(HDC, int);
-
- STDAPI_(void) ParseCmdLine(LPSTR, BOOL FAR *, LPSTR);
-
- STDAPI_(BOOL) OleStdIsOleLink(LPUNKNOWN lpUnk);
- STDAPI_(LPUNKNOWN) OleStdQueryInterface(LPUNKNOWN lpUnk, REFIID riid);
- STDAPI_(LPSTORAGE) OleStdCreateRootStorage(LPSTR lpszStgName, DWORD grfMode);
- STDAPI_(LPSTORAGE) OleStdOpenRootStorage(LPSTR lpszStgName, DWORD grfMode);
- STDAPI_(LPSTORAGE) OleStdOpenOrCreateRootStorage(LPSTR lpszStgName, DWORD grfMode);
- STDAPI_(LPSTORAGE) OleStdCreateChildStorage(LPSTORAGE lpStg, LPSTR lpszStgName);
- STDAPI_(LPSTORAGE) OleStdOpenChildStorage(LPSTORAGE lpStg, LPSTR lpszStgName, DWORD grfMode);
- STDAPI_(BOOL) OleStdCommitStorage(LPSTORAGE lpStg);
- STDAPI OleStdDestroyAllElements(LPSTORAGE lpStg);
-
- STDAPI_(LPSTORAGE) OleStdCreateStorageOnHGlobal(
- HANDLE hGlobal,
- BOOL fDeleteOnRelease,
- DWORD dwgrfMode
- );
- STDAPI_(LPSTORAGE) OleStdCreateTempStorage(BOOL fUseMemory, DWORD grfMode);
- STDAPI OleStdDoConvert(LPSTORAGE lpStg, REFCLSID rClsidNew);
- STDAPI_(BOOL) OleStdGetTreatAsFmtUserType(
- REFCLSID rClsidApp,
- LPSTORAGE lpStg,
- CLSID FAR* lpclsid,
- CLIPFORMAT FAR* lpcfFmt,
- LPSTR FAR* lplpszType
- );
- STDAPI OleStdDoTreatAsClass(LPSTR lpszUserType, REFCLSID rclsid, REFCLSID rclsidNew);
- STDAPI_(BOOL) OleStdSetupAdvises(LPOLEOBJECT lpOleObject, DWORD dwDrawAspect,
- LPSTR lpszContainerApp, LPSTR lpszContainerObj,
- LPADVISESINK lpAdviseSink, BOOL fCreate);
- STDAPI OleStdSwitchDisplayAspect(
- LPOLEOBJECT lpOleObj,
- LPDWORD lpdwCurAspect,
- DWORD dwNewAspect,
- HGLOBAL hMetaPict,
- BOOL fDeleteOldAspect,
- BOOL fSetupViewAdvise,
- LPADVISESINK lpAdviseSink,
- BOOL FAR* lpfMustUpdate
- );
- STDAPI OleStdSetIconInCache(LPOLEOBJECT lpOleObj, HGLOBAL hMetaPict);
- STDAPI_(HGLOBAL) OleStdGetData(
- LPDATAOBJECT lpDataObj,
- CLIPFORMAT cfFormat,
- DVTARGETDEVICE FAR* lpTargetDevice,
- DWORD dwAspect,
- LPSTGMEDIUM lpMedium
- );
- STDAPI_(void) OleStdMarkPasteEntryList(
- LPDATAOBJECT lpSrcDataObj,
- LPOLEUIPASTEENTRY lpPriorityList,
- int cEntries
- );
- STDAPI_(int) OleStdGetPriorityClipboardFormat(
- LPDATAOBJECT lpSrcDataObj,
- LPOLEUIPASTEENTRY lpPriorityList,
- int cEntries
- );
- STDAPI_(BOOL) OleStdIsDuplicateFormat(
- LPFORMATETC lpFmtEtc,
- LPFORMATETC arrFmtEtc,
- int nFmtEtc
- );
- STDAPI_(void) OleStdRegisterAsRunning(LPUNKNOWN lpUnk, LPMONIKER lpmkFull, DWORD FAR* lpdwRegister);
- STDAPI_(void) OleStdRevokeAsRunning(DWORD FAR* lpdwRegister);
- STDAPI_(void) OleStdNoteFileChangeTime(LPSTR lpszFileName, DWORD dwRegister);
- STDAPI_(void) OleStdNoteObjectChangeTime(DWORD dwRegister);
- STDAPI OleStdGetOleObjectData(
- LPPERSISTSTORAGE lpPStg,
- LPFORMATETC lpformatetc,
- LPSTGMEDIUM lpMedium,
- BOOL fUseMemory
- );
- STDAPI OleStdGetLinkSourceData(
- LPMONIKER lpmk,
- LPCLSID lpClsID,
- LPFORMATETC lpformatetc,
- LPSTGMEDIUM lpMedium
- );
- STDAPI_(HGLOBAL) OleStdGetObjectDescriptorData(
- CLSID clsid,
- DWORD dwAspect,
- SIZEL sizel,
- POINTL pointl,
- DWORD dwStatus,
- LPSTR lpszFullUserTypeName,
- LPSTR lpszSrcOfCopy
- );
- STDAPI_(HGLOBAL) OleStdGetObjectDescriptorDataFromOleObject(
- LPOLEOBJECT lpOleObj,
- LPSTR lpszSrcOfCopy,
- DWORD dwAspect,
- POINTL pointl,
- LPSIZEL lpSizelHim
- );
- STDAPI_(HGLOBAL) OleStdFillObjectDescriptorFromData(
- LPDATAOBJECT lpDataObject,
- LPSTGMEDIUM lpmedium,
- CLIPFORMAT FAR* lpcfFmt
- );
- STDAPI_(HANDLE) OleStdGetMetafilePictFromOleObject(
- LPOLEOBJECT lpOleObj,
- DWORD dwDrawAspect,
- LPSIZEL lpSizelHim,
- DVTARGETDEVICE FAR* ptd
- );
-
- STDAPI_(void) OleStdCreateTempFileMoniker(LPSTR lpszPrefixString, UINT FAR* lpuUnique, LPSTR lpszName, LPMONIKER FAR* lplpmk);
- STDAPI_(LPMONIKER) OleStdGetFirstMoniker(LPMONIKER lpmk);
- STDAPI_(ULONG) OleStdGetLenFilePrefixOfMoniker(LPMONIKER lpmk);
- STDAPI OleStdMkParseDisplayName(
- REFCLSID rClsid,
- LPBC lpbc,
- LPSTR lpszUserName,
- ULONG FAR* lpchEaten,
- LPMONIKER FAR* lplpmk
- );
- STDAPI_(LPVOID) OleStdMalloc(ULONG ulSize);
- STDAPI_(LPVOID) OleStdRealloc(LPVOID pmem, ULONG ulSize);
- STDAPI_(void) OleStdFree(LPVOID pmem);
- STDAPI_(ULONG) OleStdGetSize(LPVOID pmem);
- STDAPI_(void) OleStdFreeString(LPSTR lpsz, LPMALLOC lpMalloc);
- STDAPI_(LPSTR) OleStdCopyString(LPSTR lpszSrc, LPMALLOC lpMalloc);
- STDAPI_(ULONG) OleStdGetItemToken(LPSTR lpszSrc, LPSTR lpszDst,int nMaxChars);
-
- STDAPI_(UINT) OleStdIconLabelTextOut(HDC hDC,
- HFONT hFont,
- int nXStart,
- int nYStart,
- UINT fuOptions,
- RECT FAR * lpRect,
- LPSTR lpszString,
- UINT cchString,
- int FAR * lpDX);
-
- // registration database query functions
- STDAPI_(UINT) OleStdGetAuxUserType(REFCLSID rclsid,
- WORD wAuxUserType,
- LPSTR lpszAuxUserType,
- int cch,
- HKEY hKey);
-
- STDAPI_(UINT) OleStdGetUserTypeOfClass(REFCLSID rclsid,
- LPSTR lpszUserType,
- UINT cch,
- HKEY hKey);
-
- STDAPI_(BOOL) OleStdGetMiscStatusOfClass(REFCLSID, HKEY, DWORD FAR *);
- STDAPI_(CLIPFORMAT) OleStdGetDefaultFileFormatOfClass(
- REFCLSID rclsid,
- HKEY hKey
- );
-
- STDAPI_(void) OleStdInitVtbl(LPVOID lpVtbl, UINT nSizeOfVtbl);
- STDMETHODIMP OleStdNullMethod(LPUNKNOWN lpThis);
- STDAPI_(BOOL) OleStdCheckVtbl(LPVOID lpVtbl, UINT nSizeOfVtbl, LPSTR lpszIface);
- STDAPI_(ULONG) OleStdVerifyRelease(LPUNKNOWN lpUnk, LPSTR lpszMsg);
- STDAPI_(ULONG) OleStdRelease(LPUNKNOWN lpUnk);
-
- STDAPI_(HDC) OleStdCreateDC(DVTARGETDEVICE FAR* ptd);
- STDAPI_(HDC) OleStdCreateIC(DVTARGETDEVICE FAR* ptd);
- STDAPI_(DVTARGETDEVICE FAR*) OleStdCreateTargetDevice(LPPRINTDLG lpPrintDlg);
- STDAPI_(BOOL) OleStdDeleteTargetDevice(DVTARGETDEVICE FAR* ptd);
- STDAPI_(DVTARGETDEVICE FAR*) OleStdCopyTargetDevice(DVTARGETDEVICE FAR* ptdSrc);
- STDAPI_(BOOL) OleStdCopyFormatEtc(LPFORMATETC petcDest, LPFORMATETC petcSrc);
- STDAPI_(int) OleStdCompareFormatEtc(FORMATETC FAR* pFetcLeft, FORMATETC FAR* pFetcRight);
- STDAPI_(BOOL) OleStdCompareTargetDevice
- (DVTARGETDEVICE FAR* ptdLeft, DVTARGETDEVICE FAR* ptdRight);
-
-
- STDAPI_(void) OleDbgPrint(
- int nDbgLvl,
- LPSTR lpszPrefix,
- LPSTR lpszMsg,
- int nIndent
- );
- STDAPI_(void) OleDbgPrintAlways(LPSTR lpszPrefix, LPSTR lpszMsg, int nIndent);
- STDAPI_(void) OleDbgSetDbgLevel(int nDbgLvl);
- STDAPI_(int) OleDbgGetDbgLevel( void );
- STDAPI_(void) OleDbgIndent(int n);
- STDAPI_(void) OleDbgPrintRefCnt(
- int nDbgLvl,
- LPSTR lpszPrefix,
- LPSTR lpszMsg,
- LPVOID lpObj,
- ULONG refcnt
- );
- STDAPI_(void) OleDbgPrintRefCntAlways(
- LPSTR lpszPrefix,
- LPSTR lpszMsg,
- LPVOID lpObj,
- ULONG refcnt
- );
- STDAPI_(void) OleDbgPrintRect(
- int nDbgLvl,
- LPSTR lpszPrefix,
- LPSTR lpszMsg,
- LPRECT lpRect
- );
- STDAPI_(void) OleDbgPrintRectAlways(
- LPSTR lpszPrefix,
- LPSTR lpszMsg,
- LPRECT lpRect
- );
- STDAPI_(void) OleDbgPrintScodeAlways(LPSTR lpszPrefix, LPSTR lpszMsg, SCODE sc);
-
- // debug implementation of the IMalloc interface.
- STDAPI OleStdCreateDbAlloc(ULONG reserved, IMalloc FAR* FAR* ppmalloc);
-
-
- STDAPI_(LPENUMFORMATETC)
- OleStdEnumFmtEtc_Create(ULONG nCount, LPFORMATETC lpEtc);
-
- STDAPI_(LPENUMSTATDATA)
- OleStdEnumStatData_Create(ULONG nCount, LPSTATDATA lpStat);
-
- STDAPI_(BOOL)
- OleStdCopyStatData(LPSTATDATA pDest, LPSTATDATA pSrc);
-
- STDAPI_(HPALETTE)
- OleStdCreateStandardPalette(void);
-
- #if defined( OBSOLETE )
-
- /*************************************************************************
- ** The following API's have been converted into macros:
- ** OleStdQueryOleObjectData
- ** OleStdQueryLinkSourceData
- ** OleStdQueryObjectDescriptorData
- ** OleStdQueryFormatMedium
- ** OleStdCopyMetafilePict
- ** AreRectsEqual
- ** OleStdGetDropEffect
- **
- ** These macros are defined above
- *************************************************************************/
- STDAPI_(BOOL) AreRectsEqual(LPRECT lprc1, LPRECT lprc2);
- STDAPI_(BOOL) OleStdCopyMetafilePict(HANDLE hpictin, HANDLE FAR* phpictout);
- STDAPI OleStdQueryOleObjectData(LPFORMATETC lpformatetc);
- STDAPI OleStdQueryLinkSourceData(LPFORMATETC lpformatetc);
- STDAPI OleStdQueryObjectDescriptorData(LPFORMATETC lpformatetc);
- STDAPI OleStdQueryFormatMedium(LPFORMATETC lpformatetc, TYMED tymed);
- STDAPI_(DWORD) OleStdGetDropEffect ( DWORD grfKeyState );
- #endif // OBSOLETE
-
- #endif /* RC_INVOKED */
-
- #ifdef BJAPAN
- unsigned int NthCType( char *pC, int pos );
- #endif
-
- #endif // _OLESTD_H_
-