Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

ddetrack.h

Go to the documentation of this file.
00001 /****************************** Module Header ******************************\ 00002 * Module Name: ddetrack.h 00003 * 00004 * Copyright (c) 1985 - 1999, Microsoft Corporation 00005 * 00006 * Stuff for dde tracking 00007 * 00008 * History: 00009 * 9-3-91 sanfords Created 00010 \***************************************************************************/ 00011 00012 typedef struct tagDDEPACK { 00013 UINT_PTR uiLo; 00014 UINT_PTR uiHi; 00015 } DDEPACK, *PDDEPACK; 00016 00017 typedef struct tagDDE_DATA { // useful for sanely manipulating DDE data 00018 WORD wStatus; 00019 WORD wFmt; 00020 ULONG_PTR Data; // often cast to a HANDLE so keep 32 bits. 00021 } DDE_DATA, *PDDE_DATA; 00022 00023 // 00024 // This structure heads the single server side object used to hold DDE Data. 00025 // Its complexity derives from the fact that we may need to copy huge and 00026 // complex DDE data across the CSR barrier. (TYPE_DDEDATA object) 00027 // 00028 typedef struct tagINTDDEINFO { 00029 DDEPACK DdePack; // original dde pack struct 00030 DWORD flags; // XS_ flags describing the data 00031 HANDLE hDirect; // handle to direct DDE data 00032 PBYTE pDirect; // pointer to source buffer for direct data 00033 int cbDirect; // size of direct data total 00034 HANDLE hIndirect; // handle referenced by direct data 00035 PBYTE pIndirect; // pointer to source of indirect data - if being copied 00036 int cbIndirect; // amount of indirect data total 00037 // Directly following this struct is the 00038 // raw DDE data being copied between processes 00039 } INTDDEINFO, *PINTDDEINFO; 00040 00041 // values for flags fields 00042 00043 #define XS_PACKED 0x0001 // this transaction has a packed lParam 00044 #define XS_DATA 0x0002 // this transaction has data w/status-format info. 00045 #define XS_METAFILEPICT 0x0004 // the data in this transaction has a METAFILEPICT 00046 #define XS_BITMAP 0x0008 // the data in this transaction has a HBITMAP 00047 #define XS_DIB 0x0010 // the data in this transaction has a DIB 00048 #define XS_ENHMETAFILE 0x0020 // the data in this transaction has a HMF 00049 #define XS_PALETTE 0x0040 // the data in this transaction has a HPALETTE 00050 #define XS_LOHANDLE 0x0080 // the uiLo part has the data handle 00051 #define XS_HIHANDLE 0x0100 // the uiHi part has the data handle 00052 #define XS_FREEPXS 0x0200 // DDETrackGetMessageHook() should free pxs. 00053 #define XS_FRELEASE 0x0400 // DDE_FRELEASE bit was set in the data msg. 00054 #define XS_EXECUTE 0x0800 // execute data handle 00055 #define XS_FREESRC 0x1000 // free source after copy. 00056 #define XS_PUBLICOBJ 0x2000 // object being shared is public - cleanup if needed. 00057 #define XS_GIVEBACKONNACK 0x4000 // object was given and may need to be returned. 00058 #define XS_DUMPMSG 0x8000 // used for backing out PostMessages. 00059 #define XS_UNICODE 0x10000 // execute string is expected to be UNICODE 00060 00061 #define FAIL_POST 0 // return values from DDETrackPostHook() 00062 #define FAKE_POST 1 00063 #define DO_POST 2 00064 #define FAILNOFREE_POST 3 00065

Generated on Sat May 15 19:39:39 2004 for test by doxygen 1.3.7