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.
This commit is contained in:
parent
cbb9549687
commit
397964746f
|
@ -8,7 +8,7 @@ type win16
|
||||||
6 pascal DdeDisconnectList(word) DdeDisconnectList16
|
6 pascal DdeDisconnectList(word) DdeDisconnectList16
|
||||||
7 pascal DdeConnect(long long long ptr) DdeConnect16
|
7 pascal DdeConnect(long long long ptr) DdeConnect16
|
||||||
8 pascal16 DdeDisconnect(long) DdeDisconnect16
|
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
|
10 pascal DdeSetUserHandle(word long long) DdeSetUserHandle16
|
||||||
11 pascal DdeClientTransaction(ptr long long long s_word s_word long ptr)
|
11 pascal DdeClientTransaction(ptr long long long s_word s_word long ptr)
|
||||||
DdeClientTransaction16
|
DdeClientTransaction16
|
||||||
|
@ -23,7 +23,7 @@ type win16
|
||||||
20 pascal16 DdeGetLastError(long) DdeGetLastError16
|
20 pascal16 DdeGetLastError(long) DdeGetLastError16
|
||||||
21 pascal DdeCreateStringHandle(long str s_word) DdeCreateStringHandle16
|
21 pascal DdeCreateStringHandle(long str s_word) DdeCreateStringHandle16
|
||||||
22 pascal16 DdeFreeStringHandle(long long) DdeFreeStringHandle16
|
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
|
24 pascal16 DdeKeepStringHandle(long long) DdeKeepStringHandle16
|
||||||
|
|
||||||
26 pascal DdeEnableCallback(long word word) DdeEnableCallback16
|
26 pascal DdeEnableCallback(long word word) DdeEnableCallback16
|
||||||
|
|
112
include/ddeml.h
112
include/ddeml.h
|
@ -12,10 +12,23 @@
|
||||||
|
|
||||||
/* Codepage Constants
|
/* Codepage Constants
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define CP_WINANSI 1004
|
#define CP_WINANSI 1004
|
||||||
#define CP_WINUNICODE 1200
|
#define CP_WINUNICODE 1200
|
||||||
|
|
||||||
|
/* DDE synchronisation constants
|
||||||
|
*/
|
||||||
|
|
||||||
#define MSGF_DDEMGR 0x8001
|
#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
|
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_DISCONNECTS 0x00200000
|
||||||
#define CBF_SKIP_ALLNOTIFICATIONS 0x003c0000
|
#define CBF_SKIP_ALLNOTIFICATIONS 0x003c0000
|
||||||
|
|
||||||
|
#define CBR_BLOCK 0xFFFFFFFFL
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Application command flags
|
* Application command flags
|
||||||
*/
|
*/
|
||||||
|
@ -85,6 +100,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
|
Return Codes section again copied from SDK as must be same
|
||||||
|
@ -130,6 +196,13 @@ typedef DWORD HSZ;
|
||||||
typedef DWORD HDDEDATA;
|
typedef DWORD HDDEDATA;
|
||||||
typedef CHAR *LPTSTR;
|
typedef CHAR *LPTSTR;
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************
|
||||||
|
|
||||||
|
API Entry Points
|
||||||
|
|
||||||
|
*******************************************************/
|
||||||
|
|
||||||
typedef HDDEDATA (CALLBACK *PFNCALLBACK16)(UINT16,UINT16,HCONV,HSZ,HSZ,
|
typedef HDDEDATA (CALLBACK *PFNCALLBACK16)(UINT16,UINT16,HCONV,HSZ,HSZ,
|
||||||
HDDEDATA,DWORD,DWORD);
|
HDDEDATA,DWORD,DWORD);
|
||||||
typedef HDDEDATA (CALLBACK *PFNCALLBACK)(UINT,UINT,HCONV,HSZ,HSZ,
|
typedef HDDEDATA (CALLBACK *PFNCALLBACK)(UINT,UINT,HCONV,HSZ,HSZ,
|
||||||
|
@ -161,6 +234,43 @@ typedef struct
|
||||||
DWORD dwSecurity;
|
DWORD dwSecurity;
|
||||||
} CONVCONTEXT, *LPCONVCONTEXT;
|
} 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
|
// Internal data structures
|
||||||
|
|
||||||
/* entry for handle table */
|
/* 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 Client_only; // bit wasteful of space but it will be faster
|
||||||
BOOL16 Unicode; /* Flag to indicate Win32 API used to initialise */
|
BOOL16 Unicode; /* Flag to indicate Win32 API used to initialise */
|
||||||
BOOL16 Win16; /* flag to indicate Win16 API used to initialize */
|
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;
|
struct DDE_HANDLE_ENTRY *Next_Entry;
|
||||||
PFNCALLBACK CallBack;
|
PFNCALLBACK CallBack;
|
||||||
DWORD CBF_Flags;
|
DWORD CBF_Flags;
|
||||||
|
|
|
@ -556,6 +556,18 @@ typedef enum _SECURITY_IMPERSONATION_LEVEL {
|
||||||
} 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
|
* TOKEN_STATISTICS
|
||||||
|
|
250
misc/ddeml.c
250
misc/ddeml.c
|
@ -17,6 +17,7 @@
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "shm_semaph.h"
|
#include "shm_semaph.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
#include "winnt.h"
|
||||||
|
|
||||||
/* Has defined in atom.c file.
|
/* Has defined in atom.c file.
|
||||||
*/
|
*/
|
||||||
|
@ -28,7 +29,7 @@
|
||||||
|
|
||||||
|
|
||||||
static DDE_HANDLE_ENTRY *DDE_Handle_Table_Base = NULL;
|
static DDE_HANDLE_ENTRY *DDE_Handle_Table_Base = NULL;
|
||||||
static LPDWORD DDE_Max_Assigned_Instance = 0; // OK for present, may have to worry about wrap-around later
|
static DWORD DDE_Max_Assigned_Instance = 0; // OK for present, may have to worry about wrap-around later
|
||||||
static const char inst_string[]= "DDEMaxInstance";
|
static const char inst_string[]= "DDEMaxInstance";
|
||||||
static LPCWSTR DDEInstanceAccess = (LPCWSTR)&inst_string;
|
static LPCWSTR DDEInstanceAccess = (LPCWSTR)&inst_string;
|
||||||
static const char handle_string[] = "DDEHandleAccess";
|
static const char handle_string[] = "DDEHandleAccess";
|
||||||
|
@ -42,7 +43,7 @@ static HANDLE handle_mutex = 0;
|
||||||
/* typedef struct {
|
/* typedef struct {
|
||||||
DWORD nLength;
|
DWORD nLength;
|
||||||
LPVOID lpSecurityDescriptor;
|
LPVOID lpSecurityDescriptor;
|
||||||
BOOL32 bInheritHandle;
|
BOOL bInheritHandle;
|
||||||
} SECURITY_ATTRIBUTES; */
|
} SECURITY_ATTRIBUTES; */
|
||||||
|
|
||||||
#define TRUE 1
|
#define TRUE 1
|
||||||
|
@ -206,6 +207,7 @@ static void InsertHSZNode( DWORD idInst, HSZ hsz )
|
||||||
* Vn Date Author Comment
|
* Vn Date Author Comment
|
||||||
*
|
*
|
||||||
* 1.0 Jan 1999 Keith Matthews Initial version
|
* 1.0 Jan 1999 Keith Matthews Initial version
|
||||||
|
* 1.1 Mar 1999 Keith Matthews Corrected Heap handling.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
DWORD Release_reserved_mutex (HANDLE mutex, LPTSTR mutex_name, BOOL release_handle_m, BOOL release_this_i )
|
DWORD Release_reserved_mutex (HANDLE mutex, LPTSTR mutex_name, BOOL release_handle_m, BOOL release_this_i )
|
||||||
|
@ -214,7 +216,7 @@ static void InsertHSZNode( DWORD idInst, HSZ hsz )
|
||||||
if ( (err_no=GetLastError()) != 0 )
|
if ( (err_no=GetLastError()) != 0 )
|
||||||
{
|
{
|
||||||
ERR(ddeml,"ReleaseMutex failed - %s mutex %li\n",mutex_name,err_no);
|
ERR(ddeml,"ReleaseMutex failed - %s mutex %li\n",mutex_name,err_no);
|
||||||
HeapFree(GetProcessHeap(), 0, this_instance);
|
HeapFree(SystemHeap, 0, this_instance);
|
||||||
if ( release_handle_m )
|
if ( release_handle_m )
|
||||||
{
|
{
|
||||||
ReleaseMutex(handle_mutex);
|
ReleaseMutex(handle_mutex);
|
||||||
|
@ -223,7 +225,7 @@ static void InsertHSZNode( DWORD idInst, HSZ hsz )
|
||||||
}
|
}
|
||||||
if ( release_this_i )
|
if ( release_this_i )
|
||||||
{
|
{
|
||||||
HeapFree(GetProcessHeap(), 0, this_instance);
|
HeapFree(SystemHeap, 0, this_instance);
|
||||||
}
|
}
|
||||||
return DMLERR_NO_ERROR;
|
return DMLERR_NO_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -257,7 +259,7 @@ DWORD IncrementInstanceId()
|
||||||
WaitForSingleObject(inst_count_mutex,1000); // subsequent calls
|
WaitForSingleObject(inst_count_mutex,1000); // subsequent calls
|
||||||
/* FIXME - needs refinement with popup for timeout, also is timeout interval OK */
|
/* FIXME - needs refinement with popup for timeout, also is timeout interval OK */
|
||||||
}
|
}
|
||||||
if ( (err_no=GetLastError()) == ERROR_INVALID_HANDLE )
|
if ( (err_no=GetLastError()) != 0 )
|
||||||
{
|
{
|
||||||
ERR(ddeml,"CreateMutex failed - inst_count %li\n",err_no);
|
ERR(ddeml,"CreateMutex failed - inst_count %li\n",err_no);
|
||||||
err_no=Release_reserved_mutex (handle_mutex,"handle_mutex",0,1);
|
err_no=Release_reserved_mutex (handle_mutex,"handle_mutex",0,1);
|
||||||
|
@ -275,23 +277,25 @@ DWORD IncrementInstanceId()
|
||||||
UINT16 WINAPI DdeInitialize16( LPDWORD pidInst, PFNCALLBACK16 pfnCallback,
|
UINT16 WINAPI DdeInitialize16( LPDWORD pidInst, PFNCALLBACK16 pfnCallback,
|
||||||
DWORD afCmd, DWORD ulRes)
|
DWORD afCmd, DWORD ulRes)
|
||||||
{
|
{
|
||||||
|
TRACE(ddeml,"DdeInitialize16 called - calling DdeInitializeA\n");
|
||||||
return (UINT16)DdeInitializeA(pidInst,(PFNCALLBACK)pfnCallback,
|
return (UINT16)DdeInitializeA(pidInst,(PFNCALLBACK)pfnCallback,
|
||||||
afCmd, ulRes);
|
afCmd, ulRes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdeInitialize32A (USER32.106)
|
* DdeInitializeA (USER32.106)
|
||||||
*/
|
*/
|
||||||
UINT WINAPI DdeInitializeA( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
UINT WINAPI DdeInitializeA( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
||||||
DWORD afCmd, DWORD ulRes )
|
DWORD afCmd, DWORD ulRes )
|
||||||
{
|
{
|
||||||
|
TRACE(ddeml,"DdeInitializeA called - calling DdeInitializeW\n");
|
||||||
return DdeInitializeW(pidInst,pfnCallback,afCmd,ulRes);
|
return DdeInitializeW(pidInst,pfnCallback,afCmd,ulRes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdeInitialize32W [USER32.107]
|
* DdeInitializeW [USER32.107]
|
||||||
* Registers an application with the DDEML
|
* Registers an application with the DDEML
|
||||||
*
|
*
|
||||||
* PARAMS
|
* PARAMS
|
||||||
|
@ -312,6 +316,7 @@ UINT WINAPI DdeInitializeA( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
||||||
*
|
*
|
||||||
* 1.0 Pre 1998 Alexandre/Len Initial Stub
|
* 1.0 Pre 1998 Alexandre/Len Initial Stub
|
||||||
* 1.1 Jan 1999 Keith Matthews Initial (near-)complete version
|
* 1.1 Jan 1999 Keith Matthews Initial (near-)complete version
|
||||||
|
* 1.2 Mar 1999 Keith Matthews Corrected Heap handling, CreateMutex failure handling
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
UINT WINAPI DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
UINT WINAPI DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
||||||
|
@ -333,6 +338,9 @@ UINT WINAPI DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
||||||
}
|
}
|
||||||
if (!pfnCallback )
|
if (!pfnCallback )
|
||||||
{
|
{
|
||||||
|
/* this one may be wrong - MS dll seems to accept the condition, leave this until we find out more !! */
|
||||||
|
|
||||||
|
|
||||||
/* can't set up the instance with nothing to act as a callback */
|
/* can't set up the instance with nothing to act as a callback */
|
||||||
TRACE(ddeml,"No callback provided\n");
|
TRACE(ddeml,"No callback provided\n");
|
||||||
return DMLERR_INVALIDPARAMETER; /* might be DMLERR_DLL_USAGE */
|
return DMLERR_INVALIDPARAMETER; /* might be DMLERR_DLL_USAGE */
|
||||||
|
@ -353,7 +361,7 @@ UINT WINAPI DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
||||||
// messy bit, spec implies that 'Client Only' can be set in 2 different ways, catch 1 here
|
// messy bit, spec implies that 'Client Only' can be set in 2 different ways, catch 1 here
|
||||||
|
|
||||||
this_instance->Client_only=afCmd&APPCMD_CLIENTONLY;
|
this_instance->Client_only=afCmd&APPCMD_CLIENTONLY;
|
||||||
this_instance->Instance_id = pidInst; // May need to add calling proc Id
|
this_instance->Instance_id = *pidInst; // May need to add calling proc Id
|
||||||
this_instance->CallBack=*pfnCallback;
|
this_instance->CallBack=*pfnCallback;
|
||||||
this_instance->Txn_count=0;
|
this_instance->Txn_count=0;
|
||||||
this_instance->Unicode = TRUE;
|
this_instance->Unicode = TRUE;
|
||||||
|
@ -383,10 +391,10 @@ UINT WINAPI DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
||||||
s_att->lpSecurityDescriptor = NULL;
|
s_att->lpSecurityDescriptor = NULL;
|
||||||
s_att->nLength = sizeof(s_att);
|
s_att->nLength = sizeof(s_att);
|
||||||
handle_mutex = CreateMutexW(s_att,1,DDEHandleAccess);
|
handle_mutex = CreateMutexW(s_att,1,DDEHandleAccess);
|
||||||
if ( (err_no=GetLastError()) == ERROR_INVALID_HANDLE )
|
if ( (err_no=GetLastError()) != 0 )
|
||||||
{
|
{
|
||||||
ERR(ddeml,"CreateMutex failed - handle list %li\n",err_no);
|
ERR(ddeml,"CreateMutex failed - handle list %li\n",err_no);
|
||||||
HeapFree(GetProcessHeap(), 0, this_instance);
|
HeapFree(SystemHeap, 0, this_instance);
|
||||||
return DMLERR_SYS_ERROR;
|
return DMLERR_SYS_ERROR;
|
||||||
}
|
}
|
||||||
TRACE(ddeml,"Handle Mutex created/reserved\n");
|
TRACE(ddeml,"Handle Mutex created/reserved\n");
|
||||||
|
@ -472,7 +480,7 @@ UINT WINAPI DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
||||||
/* FIXME - needs refinement with popup for timeout, also is timeout interval OK */
|
/* FIXME - needs refinement with popup for timeout, also is timeout interval OK */
|
||||||
|
|
||||||
ERR(ddeml,"WaitForSingleObject failed - handle list %li\n",err_no);
|
ERR(ddeml,"WaitForSingleObject failed - handle list %li\n",err_no);
|
||||||
HeapFree(GetProcessHeap(), 0, this_instance);
|
HeapFree(SystemHeap, 0, this_instance);
|
||||||
return DMLERR_SYS_ERROR;
|
return DMLERR_SYS_ERROR;
|
||||||
}
|
}
|
||||||
if (DDE_Handle_Table_Base == NULL )
|
if (DDE_Handle_Table_Base == NULL )
|
||||||
|
@ -480,13 +488,13 @@ UINT WINAPI DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnCallback,
|
||||||
if ( Release_reserved_mutex(handle_mutex,"handle_mutex",0,1)) return DMLERR_SYS_ERROR;
|
if ( Release_reserved_mutex(handle_mutex,"handle_mutex",0,1)) return DMLERR_SYS_ERROR;
|
||||||
return DMLERR_DLL_USAGE;
|
return DMLERR_DLL_USAGE;
|
||||||
}
|
}
|
||||||
HeapFree(GetProcessHeap(), 0, this_instance); // finished - release heap space used as work store
|
HeapFree(SystemHeap, 0, this_instance); // finished - release heap space used as work store
|
||||||
// can't reinitialise if we have initialised nothing !!
|
// can't reinitialise if we have initialised nothing !!
|
||||||
reference_inst = DDE_Handle_Table_Base;
|
reference_inst = DDE_Handle_Table_Base;
|
||||||
/* must first check if we have been given a valid instance to re-initialise !! how do we do that ? */
|
/* must first check if we have been given a valid instance to re-initialise !! how do we do that ? */
|
||||||
while ( reference_inst->Next_Entry != NULL )
|
while ( reference_inst->Next_Entry != NULL )
|
||||||
{
|
{
|
||||||
if ( pidInst == reference_inst->Instance_id && pfnCallback == reference_inst->CallBack )
|
if ( *pidInst == reference_inst->Instance_id && pfnCallback == reference_inst->CallBack )
|
||||||
{
|
{
|
||||||
// Check 1 - cannot change client-only mode if set via APPCMD_CLIENTONLY
|
// Check 1 - cannot change client-only mode if set via APPCMD_CLIENTONLY
|
||||||
|
|
||||||
|
@ -546,7 +554,7 @@ BOOL16 WINAPI DdeUninitialize16( DWORD idInst )
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeUninitialize32 [USER32.119] Frees DDEML resources
|
* DdeUninitialize [USER32.119] Frees DDEML resources
|
||||||
*
|
*
|
||||||
* PARAMS
|
* PARAMS
|
||||||
* idInst [I] Instance identifier
|
* idInst [I] Instance identifier
|
||||||
|
@ -581,7 +589,7 @@ HCONVLIST WINAPI DdeConnectList16( DWORD idInst, HSZ hszService, HSZ hszTopic,
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdeConnectList32 [USER32.93] Establishes conversation with DDE servers
|
* DdeConnectList [USER32.93] Establishes conversation with DDE servers
|
||||||
*
|
*
|
||||||
* PARAMS
|
* PARAMS
|
||||||
* idInst [I] Instance identifier
|
* idInst [I] Instance identifier
|
||||||
|
@ -613,7 +621,7 @@ HCONV WINAPI DdeQueryNextServer16( HCONVLIST hConvList, HCONV hConvPrev )
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeQueryNextServer32 [USER32.112]
|
* DdeQueryNextServer [USER32.112]
|
||||||
*/
|
*/
|
||||||
HCONV WINAPI DdeQueryNextServer( HCONVLIST hConvList, HCONV hConvPrev )
|
HCONV WINAPI DdeQueryNextServer( HCONVLIST hConvList, HCONV hConvPrev )
|
||||||
{
|
{
|
||||||
|
@ -622,7 +630,16 @@ HCONV WINAPI DdeQueryNextServer( HCONVLIST hConvList, HCONV hConvPrev )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeQueryString32A [USER32.113]
|
* DdeQueryStringA [USER32.113]
|
||||||
|
*
|
||||||
|
*****************************************************************
|
||||||
|
*
|
||||||
|
* Change History
|
||||||
|
*
|
||||||
|
* Vn Date Author Comment
|
||||||
|
*
|
||||||
|
* 1.0 Dec 1998 Corel/Macadamian Initial version
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
DWORD WINAPI DdeQueryStringA(DWORD idInst, HSZ hsz, LPSTR psz, DWORD cchMax, INT iCodePage)
|
DWORD WINAPI DdeQueryStringA(DWORD idInst, HSZ hsz, LPSTR psz, DWORD cchMax, INT iCodePage)
|
||||||
{
|
{
|
||||||
|
@ -655,7 +672,16 @@ DWORD WINAPI DdeQueryStringA(DWORD idInst, HSZ hsz, LPSTR psz, DWORD cchMax, INT
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeQueryString32W [USER32.114]
|
* DdeQueryStringW [USER32.114]
|
||||||
|
*
|
||||||
|
*****************************************************************
|
||||||
|
*
|
||||||
|
* Change History
|
||||||
|
*
|
||||||
|
* Vn Date Author Comment
|
||||||
|
*
|
||||||
|
* 1.0 Dec 1998 Corel/Macadamian Initial version
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
DWORD WINAPI DdeQueryStringW(DWORD idInst, HSZ hsz, LPWSTR psz, DWORD cchMax, INT iCodePage)
|
DWORD WINAPI DdeQueryStringW(DWORD idInst, HSZ hsz, LPWSTR psz, DWORD cchMax, INT iCodePage)
|
||||||
{
|
{
|
||||||
|
@ -690,6 +716,30 @@ DWORD WINAPI DdeQueryStringW(DWORD idInst, HSZ hsz, LPWSTR psz, DWORD cchMax, IN
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
*
|
||||||
|
* DdeQueryString16 (DDEML.23)
|
||||||
|
*
|
||||||
|
******************************************************************
|
||||||
|
*
|
||||||
|
* Change History
|
||||||
|
*
|
||||||
|
* Vn Date Author Comment
|
||||||
|
*
|
||||||
|
* 1.0 March 1999 K Matthews stub only
|
||||||
|
*/
|
||||||
|
|
||||||
|
DWORD DdeQueryString16(DWORD idInst, HSZ hsz, LPSTR lpsz, DWORD cchMax, int codepage)
|
||||||
|
{
|
||||||
|
FIXME(ddeml,"(%ld, 0x%lx, %p, %ld, %d): stub \n",
|
||||||
|
idInst,
|
||||||
|
hsz,
|
||||||
|
lpsz,
|
||||||
|
cchMax,
|
||||||
|
codepage);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeDisconnectList (DDEML.6)
|
* DdeDisconnectList (DDEML.6)
|
||||||
|
@ -701,7 +751,7 @@ BOOL16 WINAPI DdeDisconnectList16( HCONVLIST hConvList )
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdeDisconnectList32 [USER32.98] Destroys list and terminates conversations
|
* DdeDisconnectList [USER32.98] Destroys list and terminates conversations
|
||||||
*
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
* Success: TRUE
|
* Success: TRUE
|
||||||
|
@ -727,7 +777,7 @@ HCONV WINAPI DdeConnect16( DWORD idInst, HSZ hszService, HSZ hszTopic,
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeConnect32 (USER32.92)
|
* DdeConnect (USER32.92)
|
||||||
*/
|
*/
|
||||||
HCONV WINAPI DdeConnect( DWORD idInst, HSZ hszService, HSZ hszTopic,
|
HCONV WINAPI DdeConnect( DWORD idInst, HSZ hszService, HSZ hszTopic,
|
||||||
LPCONVCONTEXT pCC )
|
LPCONVCONTEXT pCC )
|
||||||
|
@ -747,7 +797,7 @@ BOOL16 WINAPI DdeDisconnect16( HCONV hConv )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeSetUserHandle (DDEML.10)
|
* DdeSetUserHandle16 (DDEML.10)
|
||||||
*/
|
*/
|
||||||
BOOL16 WINAPI DdeSetUserHandle16( HCONV hConv, DWORD id, DWORD hUser )
|
BOOL16 WINAPI DdeSetUserHandle16( HCONV hConv, DWORD id, DWORD hUser )
|
||||||
{
|
{
|
||||||
|
@ -772,7 +822,7 @@ HDDEDATA WINAPI DdeCreateDataHandle16( DWORD idInst, LPBYTE pSrc, DWORD cb,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeCreateDataHandle32 (USER32.94)
|
* DdeCreateDataHandle (USER32.94)
|
||||||
*/
|
*/
|
||||||
HDDEDATA WINAPI DdeCreateDataHandle( DWORD idInst, LPBYTE pSrc, DWORD cb,
|
HDDEDATA WINAPI DdeCreateDataHandle( DWORD idInst, LPBYTE pSrc, DWORD cb,
|
||||||
DWORD cbOff, HSZ hszItem, UINT wFmt,
|
DWORD cbOff, HSZ hszItem, UINT wFmt,
|
||||||
|
@ -792,7 +842,7 @@ HDDEDATA WINAPI DdeCreateDataHandle( DWORD idInst, LPBYTE pSrc, DWORD cb,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeDisconnect32 (USER32.97)
|
* DdeDisconnect (USER32.97)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI DdeDisconnect( HCONV hConv )
|
BOOL WINAPI DdeDisconnect( HCONV hConv )
|
||||||
{
|
{
|
||||||
|
@ -821,7 +871,7 @@ HSZ WINAPI DdeCreateStringHandle16( DWORD idInst, LPCSTR str, INT16 codepage )
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeCreateStringHandle32A [USER32.95]
|
* DdeCreateStringHandleA [USER32.95]
|
||||||
*
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
* Success: String handle
|
* Success: String handle
|
||||||
|
@ -846,7 +896,7 @@ HSZ WINAPI DdeCreateStringHandleA( DWORD idInst, LPCSTR psz, INT codepage )
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdeCreateStringHandle32W [USER32.96] Creates handle to identify string
|
* DdeCreateStringHandleW [USER32.96] Creates handle to identify string
|
||||||
*
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
* Success: String handle
|
* Success: String handle
|
||||||
|
@ -884,7 +934,7 @@ BOOL16 WINAPI DdeFreeStringHandle16( DWORD idInst, HSZ hsz )
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeFreeStringHandle32 (USER32.101)
|
* DdeFreeStringHandle (USER32.101)
|
||||||
* RETURNS: success: nonzero
|
* RETURNS: success: nonzero
|
||||||
* fail: zero
|
* fail: zero
|
||||||
*/
|
*/
|
||||||
|
@ -910,7 +960,7 @@ BOOL16 WINAPI DdeFreeDataHandle16( HDDEDATA hData )
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeFreeDataHandle32 (USER32.100)
|
* DdeFreeDataHandle (USER32.100)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI DdeFreeDataHandle( HDDEDATA hData )
|
BOOL WINAPI DdeFreeDataHandle( HDDEDATA hData )
|
||||||
{
|
{
|
||||||
|
@ -931,7 +981,7 @@ BOOL16 WINAPI DdeKeepStringHandle16( DWORD idInst, HSZ hsz )
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeKeepStringHandle32 (USER32.108)
|
* DdeKeepStringHandle (USER32.108)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI DdeKeepStringHandle( DWORD idInst, HSZ hsz )
|
BOOL WINAPI DdeKeepStringHandle( DWORD idInst, HSZ hsz )
|
||||||
{
|
{
|
||||||
|
@ -954,7 +1004,7 @@ HDDEDATA WINAPI DdeClientTransaction16( LPVOID pData, DWORD cbData,
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeClientTransaction32 (USER32.90)
|
* DdeClientTransaction (USER32.90)
|
||||||
*/
|
*/
|
||||||
HDDEDATA WINAPI DdeClientTransaction( LPBYTE pData, DWORD cbData,
|
HDDEDATA WINAPI DdeClientTransaction( LPBYTE pData, DWORD cbData,
|
||||||
HCONV hConv, HSZ hszItem, UINT wFmt,
|
HCONV hConv, HSZ hszItem, UINT wFmt,
|
||||||
|
@ -966,16 +1016,37 @@ HDDEDATA WINAPI DdeClientTransaction( LPBYTE pData, DWORD cbData,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeAbandonTransaction (DDEML.12)
|
*
|
||||||
|
* DdeAbandonTransaction16 (DDEML.12)
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
BOOL16 WINAPI DdeAbandonTransaction16( DWORD idInst, HCONV hConv,
|
BOOL16 WINAPI DdeAbandonTransaction16( DWORD idInst, HCONV hConv,
|
||||||
DWORD idTransaction )
|
DWORD idTransaction )
|
||||||
{
|
{
|
||||||
FIXME( ddeml, "empty stub\n" );
|
FIXME( ddeml, "empty stub\n" );
|
||||||
return 0;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
*
|
||||||
|
* DdeAbandonTransaction (USER32.87)
|
||||||
|
*
|
||||||
|
******************************************************************
|
||||||
|
*
|
||||||
|
* Change History
|
||||||
|
*
|
||||||
|
* Vn Date Author Comment
|
||||||
|
*
|
||||||
|
* 1.0 March 1999 K Matthews stub only
|
||||||
|
*/
|
||||||
|
BOOL WINAPI DdeAbandonTransaction( DWORD idInst, HCONV hConv,
|
||||||
|
DWORD idTransaction )
|
||||||
|
{
|
||||||
|
FIXME( ddeml, "empty stub\n" );
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdePostAdvise16 [DDEML.13]
|
* DdePostAdvise16 [DDEML.13]
|
||||||
*/
|
*/
|
||||||
|
@ -986,7 +1057,7 @@ BOOL16 WINAPI DdePostAdvise16( DWORD idInst, HSZ hszTopic, HSZ hszItem )
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdePostAdvise32 [USER32.110] Send transaction to DDE callback function.
|
* DdePostAdvise [USER32.110] Send transaction to DDE callback function.
|
||||||
*
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
* Success: TRUE
|
* Success: TRUE
|
||||||
|
@ -1003,7 +1074,7 @@ BOOL WINAPI DdePostAdvise(
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeAddData (DDEML.15)
|
* DdeAddData16 (DDEML.15)
|
||||||
*/
|
*/
|
||||||
HDDEDATA WINAPI DdeAddData16( HDDEDATA hData, LPBYTE pSrc, DWORD cb,
|
HDDEDATA WINAPI DdeAddData16( HDDEDATA hData, LPBYTE pSrc, DWORD cb,
|
||||||
DWORD cbOff )
|
DWORD cbOff )
|
||||||
|
@ -1012,9 +1083,87 @@ HDDEDATA WINAPI DdeAddData16( HDDEDATA hData, LPBYTE pSrc, DWORD cb,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
*
|
||||||
|
* DdeAddData (USER32.89)
|
||||||
|
*
|
||||||
|
******************************************************************
|
||||||
|
*
|
||||||
|
* Change History
|
||||||
|
*
|
||||||
|
* Vn Date Author Comment
|
||||||
|
*
|
||||||
|
* 1.0 March 1999 K Matthews stub only
|
||||||
|
*/
|
||||||
|
HDDEDATA WINAPI DdeAddData( HDDEDATA hData, LPBYTE pSrc, DWORD cb,
|
||||||
|
DWORD cbOff )
|
||||||
|
{
|
||||||
|
FIXME( ddeml, "empty stub\n" );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
*
|
||||||
|
* DdeImpersonateClient (USER32.105)
|
||||||
|
*
|
||||||
|
******************************************************************
|
||||||
|
*
|
||||||
|
* Change History
|
||||||
|
*
|
||||||
|
* Vn Date Author Comment
|
||||||
|
*
|
||||||
|
* 1.0 March 1999 K Matthews stub only
|
||||||
|
*/
|
||||||
|
|
||||||
|
BOOL WINAPI DdeImpersonateClient( HCONV hConv)
|
||||||
|
{
|
||||||
|
FIXME( ddeml, "empty stub\n" );
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
*
|
||||||
|
* DdeSetQualityOfService (USER32.116)
|
||||||
|
*
|
||||||
|
******************************************************************
|
||||||
|
*
|
||||||
|
* Change History
|
||||||
|
*
|
||||||
|
* Vn Date Author Comment
|
||||||
|
*
|
||||||
|
* 1.0 March 1999 K Matthews stub only
|
||||||
|
*/
|
||||||
|
|
||||||
|
BOOL WINAPI DdeSetQualityOfService( HWND hwndClient, CONST SECURITY_QUALITY_OF_SERVICE *pqosNew,
|
||||||
|
PSECURITY_QUALITY_OF_SERVICE pqosPrev)
|
||||||
|
{
|
||||||
|
FIXME( ddeml, "empty stub\n" );
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
*
|
||||||
|
* DdeSetUserHandle (USER32.117)
|
||||||
|
*
|
||||||
|
******************************************************************
|
||||||
|
*
|
||||||
|
* Change History
|
||||||
|
*
|
||||||
|
* Vn Date Author Comment
|
||||||
|
*
|
||||||
|
* 1.0 March 1999 K Matthews stub only
|
||||||
|
*/
|
||||||
|
|
||||||
|
BOOL WINAPI DdeSetUserHandle( HCONV hConv, DWORD id, DWORD hUser)
|
||||||
|
{
|
||||||
|
FIXME( ddeml, "empty stub\n" );
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdeGetData32 [USER32.102] Copies data from DDE object ot local buffer
|
* DdeGetData [USER32.102] Copies data from DDE object ot local buffer
|
||||||
*
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
* Size of memory object associated with handle
|
* Size of memory object associated with handle
|
||||||
|
@ -1052,7 +1201,7 @@ LPBYTE WINAPI DdeAccessData16( HDDEDATA hData, LPDWORD pcbDataSize )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeAccessData32 (USER32.88)
|
* DdeAccessData (USER32.88)
|
||||||
*/
|
*/
|
||||||
LPBYTE WINAPI DdeAccessData( HDDEDATA hData, LPDWORD pcbDataSize )
|
LPBYTE WINAPI DdeAccessData( HDDEDATA hData, LPDWORD pcbDataSize )
|
||||||
{
|
{
|
||||||
|
@ -1069,7 +1218,7 @@ BOOL16 WINAPI DdeUnaccessData16( HDDEDATA hData )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeUnaccessData32 (USER32.118)
|
* DdeUnaccessData (USER32.118)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI DdeUnaccessData( HDDEDATA hData )
|
BOOL WINAPI DdeUnaccessData( HDDEDATA hData )
|
||||||
{
|
{
|
||||||
|
@ -1087,7 +1236,7 @@ BOOL16 WINAPI DdeEnableCallback16( DWORD idInst, HCONV hConv, UINT16 wCmd )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeEnableCallback32 (USER32.99)
|
* DdeEnableCallback (USER32.99)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI DdeEnableCallback( DWORD idInst, HCONV hConv, UINT wCmd )
|
BOOL WINAPI DdeEnableCallback( DWORD idInst, HCONV hConv, UINT wCmd )
|
||||||
{
|
{
|
||||||
|
@ -1107,7 +1256,7 @@ HDDEDATA WINAPI DdeNameService16( DWORD idInst, HSZ hsz1, HSZ hsz2,
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdeNameService32 [USER32.109] {Un}registers service name of DDE server
|
* DdeNameService [USER32.109] {Un}registers service name of DDE server
|
||||||
*
|
*
|
||||||
* PARAMS
|
* PARAMS
|
||||||
* idInst [I] Instance identifier
|
* idInst [I] Instance identifier
|
||||||
|
@ -1137,7 +1286,7 @@ UINT16 WINAPI DdeGetLastError16( DWORD idInst )
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* DdeGetLastError32 [USER32.103] Gets most recent error code
|
* DdeGetLastError [USER32.103] Gets most recent error code
|
||||||
*
|
*
|
||||||
* PARAMS
|
* PARAMS
|
||||||
* idInst [I] Instance identifier
|
* idInst [I] Instance identifier
|
||||||
|
@ -1161,7 +1310,7 @@ int WINAPI DdeCmpStringHandles16( HSZ hsz1, HSZ hsz2 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* DdeCmpStringHandles32 (USER32.91)
|
* DdeCmpStringHandles (USER32.91)
|
||||||
*
|
*
|
||||||
* Compares the value of two string handles. This comparison is
|
* Compares the value of two string handles. This comparison is
|
||||||
* not case sensitive.
|
* not case sensitive.
|
||||||
|
@ -1277,3 +1426,24 @@ UINT WINAPI ReuseDDElParam(UINT lParam, UINT msgIn, UINT msgOut,
|
||||||
FIXME(ddeml, "stub.\n");
|
FIXME(ddeml, "stub.\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************
|
||||||
|
* DdeQueryConvInfo16 (DDEML.9)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
UINT16 WINAPI DdeQueryConvInfo16( HCONV hconv, DWORD idTransaction , LPCONVINFO16 lpConvInfo)
|
||||||
|
{
|
||||||
|
FIXME(ddeml,"stub.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************
|
||||||
|
* DdeQueryConvInfo (USER32.111)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
UINT WINAPI DdeQueryConvInfo( HCONV hconv, DWORD idTransaction , LPCONVINFO lpConvInfo)
|
||||||
|
{
|
||||||
|
FIXME(ddeml,"stub.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -88,9 +88,9 @@ init MAIN_UserInit
|
||||||
84 stdcall CreateWindowExW(long wstr wstr long long long long long long long long ptr) CreateWindowExW
|
84 stdcall CreateWindowExW(long wstr wstr long long long long long long long long ptr) CreateWindowExW
|
||||||
85 stub CreateWindowStationA
|
85 stub CreateWindowStationA
|
||||||
86 stdcall CreateWindowStationW(wstr long long ptr) CreateWindowStationW
|
86 stdcall CreateWindowStationW(wstr long long ptr) CreateWindowStationW
|
||||||
87 stub DdeAbandonTransaction
|
87 stdcall DdeAbandonTransaction(long long long)DdeAbandonTransaction
|
||||||
88 stdcall DdeAccessData(long ptr) DdeAccessData
|
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
|
90 stdcall DdeClientTransaction(ptr long long long long long long ptr) DdeClientTransaction
|
||||||
91 stdcall DdeCmpStringHandles(long long) DdeCmpStringHandles
|
91 stdcall DdeCmpStringHandles(long long) DdeCmpStringHandles
|
||||||
92 stdcall DdeConnect(long long long ptr) DdeConnect
|
92 stdcall DdeConnect(long long long ptr) DdeConnect
|
||||||
|
@ -106,19 +106,19 @@ init MAIN_UserInit
|
||||||
102 stdcall DdeGetData(long ptr long long) DdeGetData
|
102 stdcall DdeGetData(long ptr long long) DdeGetData
|
||||||
103 stdcall DdeGetLastError(long) DdeGetLastError
|
103 stdcall DdeGetLastError(long) DdeGetLastError
|
||||||
104 stub DdeGetQualityOfService
|
104 stub DdeGetQualityOfService
|
||||||
105 stub DdeImpersonateClient
|
105 stdcall DdeImpersonateClient(long) DdeImpersonateClient
|
||||||
106 stdcall DdeInitializeA(ptr ptr long long) DdeInitializeA
|
106 stdcall DdeInitializeA(ptr ptr long long) DdeInitializeA
|
||||||
107 stdcall DdeInitializeW(ptr ptr long long) DdeInitializeW
|
107 stdcall DdeInitializeW(ptr ptr long long) DdeInitializeW
|
||||||
108 stdcall DdeKeepStringHandle(long long) DdeKeepStringHandle
|
108 stdcall DdeKeepStringHandle(long long) DdeKeepStringHandle
|
||||||
109 stdcall DdeNameService(long long long long) DdeNameService
|
109 stdcall DdeNameService(long long long long) DdeNameService
|
||||||
110 stdcall DdePostAdvise(long long long) DdePostAdvise
|
110 stdcall DdePostAdvise(long long long) DdePostAdvise
|
||||||
111 stub DdeQueryConvInfo
|
111 stdcall DdeQueryConvInfo(long long ptr) DdeQueryConvInfo
|
||||||
112 stdcall DdeQueryNextServer(long long) DdeQueryNextServer
|
112 stdcall DdeQueryNextServer(long long) DdeQueryNextServer
|
||||||
113 stdcall DdeQueryStringA(long long ptr long long) DdeQueryStringA
|
113 stdcall DdeQueryStringA(long long ptr long long) DdeQueryStringA
|
||||||
114 stdcall DdeQueryStringW(long long ptr long long) DdeQueryStringW
|
114 stdcall DdeQueryStringW(long long ptr long long) DdeQueryStringW
|
||||||
115 stdcall DdeReconnect(long) DdeReconnect
|
115 stdcall DdeReconnect(long) DdeReconnect
|
||||||
116 stub DdeSetQualityOfService
|
116 stdcall DdeSetQualityOfService(long ptr ptr) DdeSetQualityOfService
|
||||||
117 stub DdeSetUserHandle
|
117 stdcall DdeSetUserHandle (long long long) DdeSetUserHandle
|
||||||
118 stdcall DdeUnaccessData(long) DdeUnaccessData
|
118 stdcall DdeUnaccessData(long) DdeUnaccessData
|
||||||
119 stdcall DdeUninitialize(long) DdeUninitialize
|
119 stdcall DdeUninitialize(long) DdeUninitialize
|
||||||
120 stdcall DefDlgProcA(long long long long) DefDlgProcA
|
120 stdcall DefDlgProcA(long long long long) DefDlgProcA
|
||||||
|
|
Loading…
Reference in New Issue