Commit 39796474 authored by Keith Matthews's avatar Keith Matthews Committed by Alexandre Julliard

Added coded stubs for DdeQueryConvInfo (16 & 32 bit), DdeAddData (32

bit), DdeAbandonTransaction (32 bit), DdeImpersonateClient (32) DdeSetQualityOfService, DdeSetUserHandle. Corrected heap handling in DdeInitializeW, refined CreateMutex error handling. General tidying.
parent cbb95496
......@@ -8,7 +8,7 @@ type win16
6 pascal DdeDisconnectList(word) DdeDisconnectList16
7 pascal DdeConnect(long long long ptr) DdeConnect16
8 pascal16 DdeDisconnect(long) DdeDisconnect16
9 stub DdeQueryConvInfo #(word long ptr) DdeQueryConvInfo
9 pascal16 DdeQueryConvInfo (word long ptr) DdeQueryConvInfo16
10 pascal DdeSetUserHandle(word long long) DdeSetUserHandle16
11 pascal DdeClientTransaction(ptr long long long s_word s_word long ptr)
DdeClientTransaction16
......@@ -23,7 +23,7 @@ type win16
20 pascal16 DdeGetLastError(long) DdeGetLastError16
21 pascal DdeCreateStringHandle(long str s_word) DdeCreateStringHandle16
22 pascal16 DdeFreeStringHandle(long long) DdeFreeStringHandle16
23 stub DdeQueryString #(long word ptr long word) DdeQueryString
23 pascal DdeQueryString (long word ptr long word) DdeQueryString16
24 pascal16 DdeKeepStringHandle(long long) DdeKeepStringHandle16
26 pascal DdeEnableCallback(long word word) DdeEnableCallback16
......
......@@ -12,10 +12,23 @@
/* Codepage Constants
*/
#define CP_WINANSI 1004
#define CP_WINUNICODE 1200
/* DDE synchronisation constants
*/
#define MSGF_DDEMGR 0x8001
#define QID_SYNC16 -1L
#define QID_SYNC 0xFFFFFFFF
/* Type variation for MS deliberate departures from ANSI standards
*/
#define EXPENTRY CALLBACK
/***************************************************
FLAGS Section - copied from Microsoft SDK as must be standard, probably Copyright Microsoft Corporation
......@@ -40,6 +53,8 @@
#define CBF_SKIP_DISCONNECTS 0x00200000
#define CBF_SKIP_ALLNOTIFICATIONS 0x003c0000
#define CBR_BLOCK 0xFFFFFFFFL
/*
* Application command flags
*/
......@@ -87,6 +102,57 @@
/****************************************************
Message Types Section
****************************************************/
#define XTYPF_NOBLOCK 0x0002 /* CBR_NOBLOCK will not work */
#define XTYPF_NODATA 0x0004 /* DDE_FDEFERUPD */
#define XTYPF_ACKREQ 0x0008 /* DDE_FACKREQ */
#define XCLASS_MASK 0xFC00
#define XCLASS_BOOL 0x1000
#define XCLASS_DATA 0x2000
#define XCLASS_FLAGS 0x4000
#define XCLASS_NOTIFICATION 0x8000
#define XTYP_ADVDATA (0x0010 | XCLASS_FLAGS)
#define XTYP_XACT_COMPLETE (0x0080 | XCLASS_NOTIFICATION )
#define XTYP_REGISTER (0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK )
#define XTYP_REQUEST (0x00B0 | XCLASS_DATA )
#define XTYP_DISCONNECT (0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK )
#define XTYP_UNREGISTER (0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK )
/**************************************************
End of Message Types Section
****************************************************/
/*****************************************************
DDE Codes for wStatus field
*****************************************************/
#define DDE_FACK 0x8000
#define DDE_FBUSY 0x4000
#define DDE_FDEFERUPD 0x4000
#define DDE_FACKREQ 0x8000
#define DDE_FRELEASE 0x2000
#define DDE_FREQUESTED 0x1000
#define DDE_FAPPSTATUS 0x00FF
#define DDE_FNOTPROCESSED 0x0000
/*****************************************************
End of wStatus codes
*****************************************************/
/****************************************************
Return Codes section again copied from SDK as must be same
*****************************************************/
......@@ -130,6 +196,13 @@ typedef DWORD HSZ;
typedef DWORD HDDEDATA;
typedef CHAR *LPTSTR;
/*******************************************************
API Entry Points
*******************************************************/
typedef HDDEDATA (CALLBACK *PFNCALLBACK16)(UINT16,UINT16,HCONV,HSZ,HSZ,
HDDEDATA,DWORD,DWORD);
typedef HDDEDATA (CALLBACK *PFNCALLBACK)(UINT,UINT,HCONV,HSZ,HSZ,
......@@ -161,6 +234,43 @@ typedef struct
DWORD dwSecurity;
} CONVCONTEXT, *LPCONVCONTEXT;
typedef struct
{
DWORD cb;
DWORD hUser;
HCONV hConvPartner;
HSZ hszSvcPartner;
HSZ hszServiceReq;
HSZ hszTopic;
HSZ hszItem;
UINT16 wFmt;
UINT16 wType;
UINT16 wStatus;
UINT16 wConvst;
UINT16 wLastError;
HCONVLIST hConvList;
CONVCONTEXT16 ConvCtxt;
} CONVINFO16, *LPCONVINFO16;
typedef struct
{
DWORD cb;
DWORD hUser;
HCONV hConvPartner;
HSZ hszSvcPartner;
HSZ hszServiceReq;
HSZ hszTopic;
HSZ hszItem;
UINT wFmt;
UINT wType;
UINT wStatus;
UINT wConvst;
UINT wLastError;
HCONVLIST hConvList;
CONVCONTEXT ConvCtxt;
HWND hwnd;
HWND hwndPartner;
} CONVINFO, *LPCONVINFO;
// Internal data structures
/* entry for handle table */
......@@ -169,7 +279,7 @@ typedef struct DDE_HANDLE_ENTRY {
BOOL16 Client_only; // bit wasteful of space but it will be faster
BOOL16 Unicode; /* Flag to indicate Win32 API used to initialise */
BOOL16 Win16; /* flag to indicate Win16 API used to initialize */
LPDWORD Instance_id; // needed to track monitor usage
DWORD Instance_id; // needed to track monitor usage
struct DDE_HANDLE_ENTRY *Next_Entry;
PFNCALLBACK CallBack;
DWORD CBF_Flags;
......
......@@ -556,6 +556,18 @@ typedef enum _SECURITY_IMPERSONATION_LEVEL {
} SECURITY_IMPERSONATION_LEVEL;
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,
* PSECURITY_CONTEXT_TRACKING_MODE;
//
// Quality of Service
//
typedef struct _SECURITY_QUALITY_OF_SERVICE {
DWORD Length;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
BOOL EffectiveOnly;
} SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
/*
* TOKEN_STATISTICS
......
......@@ -88,9 +88,9 @@ init MAIN_UserInit
84 stdcall CreateWindowExW(long wstr wstr long long long long long long long long ptr) CreateWindowExW
85 stub CreateWindowStationA
86 stdcall CreateWindowStationW(wstr long long ptr) CreateWindowStationW
87 stub DdeAbandonTransaction
87 stdcall DdeAbandonTransaction(long long long)DdeAbandonTransaction
88 stdcall DdeAccessData(long ptr) DdeAccessData
89 stub DdeAddData
89 stdcall DdeAddData(long ptr long long) DdeAddData
90 stdcall DdeClientTransaction(ptr long long long long long long ptr) DdeClientTransaction
91 stdcall DdeCmpStringHandles(long long) DdeCmpStringHandles
92 stdcall DdeConnect(long long long ptr) DdeConnect
......@@ -106,19 +106,19 @@ init MAIN_UserInit
102 stdcall DdeGetData(long ptr long long) DdeGetData
103 stdcall DdeGetLastError(long) DdeGetLastError
104 stub DdeGetQualityOfService
105 stub DdeImpersonateClient
105 stdcall DdeImpersonateClient(long) DdeImpersonateClient
106 stdcall DdeInitializeA(ptr ptr long long) DdeInitializeA
107 stdcall DdeInitializeW(ptr ptr long long) DdeInitializeW
108 stdcall DdeKeepStringHandle(long long) DdeKeepStringHandle
109 stdcall DdeNameService(long long long long) DdeNameService
110 stdcall DdePostAdvise(long long long) DdePostAdvise
111 stub DdeQueryConvInfo
111 stdcall DdeQueryConvInfo(long long ptr) DdeQueryConvInfo
112 stdcall DdeQueryNextServer(long long) DdeQueryNextServer
113 stdcall DdeQueryStringA(long long ptr long long) DdeQueryStringA
114 stdcall DdeQueryStringW(long long ptr long long) DdeQueryStringW
115 stdcall DdeReconnect(long) DdeReconnect
116 stub DdeSetQualityOfService
117 stub DdeSetUserHandle
116 stdcall DdeSetQualityOfService(long ptr ptr) DdeSetQualityOfService
117 stdcall DdeSetUserHandle (long long long) DdeSetUserHandle
118 stdcall DdeUnaccessData(long) DdeUnaccessData
119 stdcall DdeUninitialize(long) DdeUninitialize
120 stdcall DefDlgProcA(long long long long) DefDlgProcA
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment