Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

182 lines
5.4 KiB

#if !defined( _UTILS_H_ )
#define _UTILS_H_
#define STREAMTYPE_CONTROL 0x00000001
#define STREAMTYPE_CACHE 0x00000002
#define STREAMTYPE_CONTAINER 0x00000004
#define STREAMTYPE_OTHER \
(!(STREAMTYPE_CONTROL | STREAMTYPE_CACHE | STREAMTYPE_CONTAINER))
#define STREAMTYPE_ALL 0xFFFFFFFF
#define OPCODE_COPY 1
#define OPCODE_REMOVE 2
#define OPCODE_MOVE 3
#define OPCODE_EXCLUDEFROMCOPY 4
#define CONVERT_NOSOURCE 1
#define CONVERT_NODESTINATION 2
typedef struct tagPLACEABLEMETAHEADER {
DWORD key; /* must be 0x9AC6CDD7L */
HANDLE hmf; /* must be zero */
RECT bbox; /* bounding rectangle of the metafile */
WORD inch; /* # of metafile units per inch must be < 1440 */
/* most apps use 576 or 1000 */
DWORD reserved; /* must be zero */
WORD checksum;
} PLACEABLEMETAHEADER;
#ifdef _MAC
#define UtMemCpy(lpdst,lpsrc,dwCount) (BlockMove(lpsrc, lpdst, dwCount))
#else
#define UtMemCpy(lpdst,lpsrc,dwCount) (hmemcpy(lpdst, lpsrc, dwCount))
#endif
FARINTERNAL_(BOOL) UtGlobalHandleCpy(HANDLE FAR* lphdst, HANDLE hsrc);
FARINTERNAL_(HANDLE) UtDupGlobal (HANDLE hSrc, UINT uiFlags=GMEM_MOVEABLE);
FARINTERNAL_(BOOL) UtIsFormatSupported (LPDATAOBJECT lpObj, BOOL fGet,
BOOL fSet, CLIPFORMAT cfFormat);
FARINTERNAL_(LPSTR) UtDupString(LPCSTR lpszIn);
FARINTERNAL_(BOOL) UtCopyFormatEtc(FORMATETC FAR* pFetcIn,
FORMATETC FAR* pFetcCopy);
FARINTERNAL_(int) UtCompareFormatEtc(FORMATETC FAR* pFetcLeft,
FORMATETC FAR* pFetcRight);
FARINTERNAL_(BOOL) UtCompareTargetDevice(DVTARGETDEVICE FAR* ptdLeft,
DVTARGETDEVICE FAR* ptdRight);
FARINTERNAL_(BOOL) UtCopyStatData(STATDATA FAR* pSDIn,
STATDATA FAR* pSDCopy);
FARINTERNAL_(void) UtReleaseStatData(STATDATA FAR* pStatData);
FARINTERNAL_(HPALETTE) UtDupPalette(HPALETTE hpalette);
FARINTERNAL_(int) UtPaletteSize (int iBitCount);
FARINTERNAL_(DWORD) UtFormatToTymed (CLIPFORMAT cf);
FARINTERNAL_(BOOL) UtQueryPictFormat(LPDATAOBJECT lpSrcDataObj,
LPFORMATETC lpforetc);
FARINTERNAL_(HBITMAP) UtConvertDibToBitmap(HANDLE hDib);
FARINTERNAL_(HANDLE) UtConvertBitmapToDib(HBITMAP hBitmapm,
HPALETTE hpal = NULL);
FARINTERNAL_(void) UtGetClassID(LPUNKNOWN lpUnk, CLSID FAR* lpClsid);
FARINTERNAL_(DVTARGETDEVICE FAR*) UtCopyTargetDevice(DVTARGETDEVICE FAR* ptd);
FARINTERNAL UtGetIconData(LPDATAOBJECT lpSrcDataObj,
REFCLSID rclsid, LPFORMATETC lpforetc,
LPSTGMEDIUM lpstgmed);
OLEAPI UtDoStreamOperation (LPSTORAGE pstgSrc,
LPSTORAGE pstgDst, int iOpCode,
DWORD grfAllowedStmTypes);
FARINTERNAL_(LPSTR) UtStrRChr (LPCSTR sz, const char ch);
FARINTERNAL_(void) UtGetPresStreamName (LPSTR lpszName, int iStreamNum);
FARINTERNAL_(void) UtRemoveExtraOlePresStreams (LPSTORAGE pstg,
int iStart);
/*** Following routines can be found in convert.cpp *****/
FARINTERNAL UtGetHGLOBALFromStm(LPSTREAM lpstream, DWORD dwSize,
HANDLE FAR* lphPres);
FARINTERNAL UtGetHDIBFromDIBFileStm(LPSTREAM pstm,
HANDLE FAR* lphdata);
FARINTERNAL_(HANDLE) UtGetHMFPICT(HMETAFILE hMF, BOOL fDeletOnError,
DWORD xExt, DWORD yExt);
FARINTERNAL UtGetHMFFromMFStm(LPSTREAM lpstream, DWORD dwSize,
BOOL fConvert, HANDLE FAR* lphPres);
FARINTERNAL UtGetSizeAndExtentsFromPlaceableMFStm(LPSTREAM pstm,
DWORD FAR* dwSize, LONG FAR* plWidth,
LONG FAR* plHeight);
FARINTERNAL UtGetHMFPICTFromPlaceableMFStm(LPSTREAM pstm,
HANDLE FAR* lphdata);
FARINTERNAL UtHGLOBALToStm(HANDLE hdata, DWORD dwSize,
LPSTREAM pstm);
FARINTERNAL_(void) UtGetDibExtents (LPBITMAPINFOHEADER lpbmi,
LONG FAR* plWidth, LONG FAR* plHeight);
FARINTERNAL UtHDIBToDIBFileStm(HANDLE hdata,
DWORD dwSize, LPSTREAM pstm);
FARINTERNAL UtDIBStmToDIBFileStm(LPSTREAM pstmDIB,
DWORD dwSize, LPSTREAM pstmDIBFile);
FARINTERNAL UtHDIBFileToOlePresStm(HANDLE hdata, LPSTREAM pstm);
FARINTERNAL UtHMFToMFStm(HANDLE FAR* lphMF, DWORD dwSize,
LPSTREAM lpstream);
FARINTERNAL UtHMFToPlaceableMFStm(HANDLE FAR* lphMF,
DWORD dwSize, LONG lWidth, LONG lHeight,
LPSTREAM pstm);
FARINTERNAL UtMFStmToPlaceableMFStm(LPSTREAM pstmMF,
DWORD dwSize, LONG lWidth, LONG lHeight,
LPSTREAM pstmPMF);
FARINTERNAL UtReadOlePresStmHeader (LPSTREAM pstm,
LPFORMATETC pforetc, DWORD FAR* pdwAdvf,
BOOL FAR* pfConvert);
FARINTERNAL UtWriteOlePresStmHeader(LPSTREAM lppstream,
LPFORMATETC pforetc, DWORD dwAdvf);
FARINTERNAL UtOlePresStmToContentsStm (LPSTORAGE pstg,
LPSTR lpszPresStm, BOOL fDeletePresStm,
UINT FAR* puiStatus);
/*** Following routines can be found in ..\dde\client\ddecnvrt.cpp *****/
FARINTERNAL UtGetHMFPICTFromMSDrawNativeStm (LPSTREAM pstm,
DWORD dwSize, HANDLE FAR* lphdata);
FARINTERNAL UtPlaceableMFStmToMSDrawNativeStm (LPSTREAM pstmPMF,
LPSTREAM pstmMSDraw);
FARINTERNAL UtDIBFileStmToPBrushNativeStm (LPSTREAM pstmDIBFile,
LPSTREAM pstmPBrush);
FARINTERNAL_(HANDLE) UtGetHPRESFromNative (LPSTORAGE pstg,
CLIPFORMAT cfFormat, BOOL fOle10Native);
FARINTERNAL UtContentsStmTo10NativeStm (LPSTORAGE pstg,
REFCLSID rclsid, BOOL fDeleteContents,
UINT FAR* puiStatus);
FARINTERNAL Ut10NativeStmToContentsStm(LPSTORAGE pstg,
REFCLSID rclsid, BOOL fDeleteSrcStm);
#endif // _UTILS_H