Merge from Corel tree. Contributors are: - Corel (Sean Langley, Michael Abd-El-Malek, Rick Mutzke, Bill Xing) - Macadamian on behalf of Corel (Louis-Philippe Gagnon, Jean-Claude Batista) Also added a few bits: - Complete window model for several instances and conversations. - Support for asynchronous transactions. - Fixed some code (WM_DDE_REQUEST, WM_DDE_ADVISE, WM_DDE_REQUEST) handling. - Support for wild connections.
diff --git a/include/dde.h b/include/dde.h index 832e0d6..b8bf1bc 100644 --- a/include/dde.h +++ b/include/dde.h
@@ -32,7 +32,7 @@ /* DDEACK: wStatus in WM_DDE_ACK message */ struct tagDDEACK { - unsigned bAppReturnCode:8, reserved:6, fBusy:1, fAck:1; + unsigned short bAppReturnCode:8, reserved:6, fBusy:1, fAck:1; }; typedef struct tagDDEACK DDEACK; @@ -61,6 +61,11 @@ }; typedef struct tagDDEPOKE DDEPOKE; +BOOL WINAPI DdeSetQualityOfService(HWND hwndClient, + CONST SECURITY_QUALITY_OF_SERVICE *pqosNew, + PSECURITY_QUALITY_OF_SERVICE pqosPrev); + +BOOL WINAPI ImpersonateDdeClientWindow(HWND hWndClient, HWND hWndServer); /* lParam packing/unpacking API */
diff --git a/include/ddeml.h b/include/ddeml.h index b66aed8..7aef612 100644 --- a/include/ddeml.h +++ b/include/ddeml.h
@@ -32,12 +32,49 @@ #define EXPENTRY CALLBACK +#define SZDDESYS_TOPIC TEXT("System") +#define SZDDESYS_ITEM_TOPICS TEXT("Topics") +#define SZDDESYS_ITEM_SYSITEMS TEXT("SysItems") +#define SZDDESYS_ITEM_RTNMSG TEXT("ReturnMessage") +#define SZDDESYS_ITEM_STATUS TEXT("Status") +#define SZDDESYS_ITEM_FORMATS TEXT("Formats") +#define SZDDESYS_ITEM_HELP TEXT("Help") +#define SZDDE_ITEM_ITEMLIST TEXT("TopicItemList") + /*************************************************** FLAGS Section - copied from Microsoft SDK as must be standard, probably Copyright Microsoft Corporation ***************************************************/ +#define XST_NULL 0 +#define XST_INCOMPLETE 1 +#define XST_CONNECTED 2 +#define XST_INIT1 3 +#define XST_INIT2 4 +#define XST_REQSENT 5 +#define XST_DATARCVD 6 +#define XST_POKESENT 7 +#define XST_POKEACKRCVD 8 +#define XST_EXECSENT 9 +#define XST_EXECACKRCVD 10 +#define XST_ADVSENT 11 +#define XST_UNADVSENT 12 +#define XST_ADVACKRCVD 13 +#define XST_UNADVACKRCVD 14 +#define XST_ADVDATASENT 15 +#define XST_ADVDATAACKRCVD 16 + +#define ST_CONNECTED 0x0001 +#define ST_ADVISE 0x0002 +#define ST_ISLOCAL 0x0004 +#define ST_BLOCKED 0x0008 +#define ST_CLIENT 0x0010 +#define ST_TERMINATED 0x0020 +#define ST_INLIST 0x0040 +#define ST_BLOCKNEXT 0x0080 +#define ST_ISSELF 0x0100 + /* * Callback filter flags for use with standard apps. */ @@ -138,6 +175,8 @@ #define XTYP_MASK 0x00F0 #define XTYP_SHIFT 4 +#define TIMEOUT_ASYNC 0xFFFFFFFF + /************************************************** End of Message Types Section @@ -159,6 +198,10 @@ #define DDE_FAPPSTATUS 0x00FF #define DDE_FNOTPROCESSED 0x0000 +#define DDE_FACKRESERVED (~(DDE_FACK | DDE_FBUSY | DDE_FAPPSTATUS)) +#define DDE_FADVRESERVED (~(DDE_FACKREQ | DDE_FDEFERUPD)) +#define DDE_FDATRESERVED (~(DDE_FACKREQ | DDE_FRELEASE | DDE_FREQUESTED)) +#define DDE_FPOKRESERVED (~(DDE_FRELEASE)) /***************************************************** @@ -197,6 +240,8 @@ #define DMLERR_LAST 0x4011 +#define HDATA_APPOWNED 0x0001 + /***************************************************** End of Return Codes and Microsoft section @@ -205,10 +250,10 @@ -DECLARE_OLD_HANDLE(HCONVLIST); -DECLARE_OLD_HANDLE(HCONV); -DECLARE_OLD_HANDLE(HSZ); -DECLARE_OLD_HANDLE(HDDEDATA); +DECLARE_HANDLE(HCONVLIST); +DECLARE_HANDLE(HCONV); +DECLARE_HANDLE(HSZ); +DECLARE_HANDLE(HDDEDATA); @@ -218,8 +263,8 @@ *******************************************************/ -typedef HDDEDATA CALLBACK (*PFNCALLBACK)(UINT,UINT,HCONV,HSZ,HSZ, - HDDEDATA,DWORD,DWORD); +typedef HDDEDATA CALLBACK (*PFNCALLBACK)(UINT, UINT, HCONV, HSZ, HSZ, + HDDEDATA, DWORD, DWORD); /*************************************************** @@ -227,7 +272,13 @@ ***************************************************/ -typedef struct +typedef struct tagHSZPAIR +{ + HSZ hszSvc; + HSZ hszTopic; +} HSZPAIR, *PHSZPAIR, *LPHSZPAIR; + +typedef struct tagCONVCONTEXT { UINT cb; UINT wFlags; @@ -237,7 +288,7 @@ DWORD dwSecurity; } CONVCONTEXT, *LPCONVCONTEXT; -typedef struct +typedef struct tagCONVINFO { DWORD cb; DWORD hUser;