File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                ddeml.d                                *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                           by Stewart Gordon                           *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
c2b7a98c21 2011-02-23        kinaba: module win32.ddeml;
9b639cf2d6 2015-05-05        kinaba: pragma(lib, "user32");
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.basetsd, win32.windef, win32.winnt;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : int {
4e2933c620 2015-04-21        kinaba: 	CP_WINANSI    = 1004,
4e2933c620 2015-04-21        kinaba: 	CP_WINUNICODE = 1200
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT {
4e2933c620 2015-04-21        kinaba: 	XTYPF_NOBLOCK = 2,
4e2933c620 2015-04-21        kinaba: 	XTYPF_NODATA  = 4,
4e2933c620 2015-04-21        kinaba: 	XTYPF_ACKREQ  = 8
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT {
4e2933c620 2015-04-21        kinaba: 	XCLASS_MASK         = 0xFC00,
4e2933c620 2015-04-21        kinaba: 	XCLASS_BOOL         = 0x1000,
4e2933c620 2015-04-21        kinaba: 	XCLASS_DATA         = 0x2000,
4e2933c620 2015-04-21        kinaba: 	XCLASS_FLAGS        = 0x4000,
4e2933c620 2015-04-21        kinaba: 	XCLASS_NOTIFICATION = 0x8000
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT {
4e2933c620 2015-04-21        kinaba: 	XST_NULL,
4e2933c620 2015-04-21        kinaba: 	XST_INCOMPLETE,
4e2933c620 2015-04-21        kinaba: 	XST_CONNECTED,
4e2933c620 2015-04-21        kinaba: 	XST_INIT1,
4e2933c620 2015-04-21        kinaba: 	XST_INIT2,
4e2933c620 2015-04-21        kinaba: 	XST_REQSENT,
4e2933c620 2015-04-21        kinaba: 	XST_DATARCVD,
4e2933c620 2015-04-21        kinaba: 	XST_POKESENT,
4e2933c620 2015-04-21        kinaba: 	XST_POKEACKRCVD,
4e2933c620 2015-04-21        kinaba: 	XST_EXECSENT,
4e2933c620 2015-04-21        kinaba: 	XST_EXECACKRCVD,
4e2933c620 2015-04-21        kinaba: 	XST_ADVSENT,
4e2933c620 2015-04-21        kinaba: 	XST_UNADVSENT,
4e2933c620 2015-04-21        kinaba: 	XST_ADVACKRCVD,
4e2933c620 2015-04-21        kinaba: 	XST_UNADVACKRCVD,
4e2933c620 2015-04-21        kinaba: 	XST_ADVDATASENT,
4e2933c620 2015-04-21        kinaba: 	XST_ADVDATAACKRCVD // = 16
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT {
4e2933c620 2015-04-21        kinaba: 	XTYP_ERROR           = XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_ADVDATA         = 0x0010 | XCLASS_FLAGS,
4e2933c620 2015-04-21        kinaba: 	XTYP_ADVREQ          = 0x0020 | XCLASS_DATA | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_ADVSTART        = 0x0030 | XCLASS_BOOL,
4e2933c620 2015-04-21        kinaba: 	XTYP_ADVSTOP         = 0x0040 | XCLASS_NOTIFICATION,
4e2933c620 2015-04-21        kinaba: 	XTYP_EXECUTE         = 0x0050 | XCLASS_FLAGS,
4e2933c620 2015-04-21        kinaba: 	XTYP_CONNECT         = 0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_CONNECT_CONFIRM = 0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_XACT_COMPLETE   = 0x0080 | XCLASS_NOTIFICATION,
4e2933c620 2015-04-21        kinaba: 	XTYP_POKE            = 0x0090 | XCLASS_FLAGS,
4e2933c620 2015-04-21        kinaba: 	XTYP_REGISTER        = 0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_REQUEST         = 0x00B0 | XCLASS_DATA,
4e2933c620 2015-04-21        kinaba: 	XTYP_DISCONNECT      = 0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_UNREGISTER      = 0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_WILDCONNECT     = 0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_MONITOR         = 0X00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
4e2933c620 2015-04-21        kinaba: 	XTYP_MASK            = 0x00F0,
4e2933c620 2015-04-21        kinaba: 	XTYP_SHIFT           = 4
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /+
4e2933c620 2015-04-21        kinaba: #define TIMEOUT_ASYNC  0xFFFFFFFF
4e2933c620 2015-04-21        kinaba: #define QID_SYNC       0xFFFFFFFF
4e2933c620 2015-04-21        kinaba: +/
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT {
4e2933c620 2015-04-21        kinaba: 	ST_CONNECTED  =   1,
4e2933c620 2015-04-21        kinaba: 	ST_ADVISE     =   2,
4e2933c620 2015-04-21        kinaba: 	ST_ISLOCAL    =   4,
4e2933c620 2015-04-21        kinaba: 	ST_BLOCKED    =   8,
4e2933c620 2015-04-21        kinaba: 	ST_CLIENT     =  16,
4e2933c620 2015-04-21        kinaba: 	ST_TERMINATED =  32,
4e2933c620 2015-04-21        kinaba: 	ST_INLIST     =  64,
4e2933c620 2015-04-21        kinaba: 	ST_BLOCKNEXT  = 128,
4e2933c620 2015-04-21        kinaba: 	ST_ISSELF     = 256
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /+
4e2933c620 2015-04-21        kinaba: #define CADV_LATEACK 0xFFFF
4e2933c620 2015-04-21        kinaba: +/
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT {
4e2933c620 2015-04-21        kinaba: 	DMLERR_NO_ERROR      = 0,
4e2933c620 2015-04-21        kinaba: 	DMLERR_FIRST         = 0x4000,
4e2933c620 2015-04-21        kinaba: 	DMLERR_ADVACKTIMEOUT = DMLERR_FIRST,
4e2933c620 2015-04-21        kinaba: 	DMLERR_BUSY,
4e2933c620 2015-04-21        kinaba: 	DMLERR_DATAACKTIMEOUT,
4e2933c620 2015-04-21        kinaba: 	DMLERR_DLL_NOT_INITIALIZED,
4e2933c620 2015-04-21        kinaba: 	DMLERR_DLL_USAGE,
4e2933c620 2015-04-21        kinaba: 	DMLERR_EXECACKTIMEOUT,
4e2933c620 2015-04-21        kinaba: 	DMLERR_INVALIDPARAMETER,
4e2933c620 2015-04-21        kinaba: 	DMLERR_LOW_MEMORY,
4e2933c620 2015-04-21        kinaba: 	DMLERR_MEMORY_ERROR,
4e2933c620 2015-04-21        kinaba: 	DMLERR_NOTPROCESSED,
4e2933c620 2015-04-21        kinaba: 	DMLERR_NO_CONV_ESTABLISHED,
4e2933c620 2015-04-21        kinaba: 	DMLERR_POKEACKTIMEOUT,
4e2933c620 2015-04-21        kinaba: 	DMLERR_POSTMSG_FAILED,
4e2933c620 2015-04-21        kinaba: 	DMLERR_REENTRANCY,
4e2933c620 2015-04-21        kinaba: 	DMLERR_SERVER_DIED,
4e2933c620 2015-04-21        kinaba: 	DMLERR_SYS_ERROR,
4e2933c620 2015-04-21        kinaba: 	DMLERR_UNADVACKTIMEOUT,
4e2933c620 2015-04-21        kinaba: 	DMLERR_UNFOUND_QUEUE_ID, // = 0x4011
4e2933c620 2015-04-21        kinaba: 	DMLERR_LAST          = DMLERR_UNFOUND_QUEUE_ID
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /+
4e2933c620 2015-04-21        kinaba: #define DDE_FACK	0x8000
4e2933c620 2015-04-21        kinaba: #define DDE_FBUSY	0x4000
4e2933c620 2015-04-21        kinaba: #define DDE_FDEFERUPD	0x4000
4e2933c620 2015-04-21        kinaba: #define DDE_FACKREQ	0x8000
4e2933c620 2015-04-21        kinaba: #define DDE_FRELEASE	0x2000
4e2933c620 2015-04-21        kinaba: #define DDE_FREQUESTED	0x1000
4e2933c620 2015-04-21        kinaba: #define DDE_FAPPSTATUS	0x00ff
4e2933c620 2015-04-21        kinaba: #define DDE_FNOTPROCESSED	0
4e2933c620 2015-04-21        kinaba: #define DDE_FACKRESERVED	(~(DDE_FACK|DDE_FBUSY|DDE_FAPPSTATUS))
4e2933c620 2015-04-21        kinaba: #define DDE_FADVRESERVED	(~(DDE_FACKREQ|DDE_FDEFERUPD))
4e2933c620 2015-04-21        kinaba: #define DDE_FDATRESERVED	(~(DDE_FACKREQ|DDE_FRELEASE|DDE_FREQUESTED))
4e2933c620 2015-04-21        kinaba: #define DDE_FPOKRESERVED	(~DDE_FRELEASE)
4e2933c620 2015-04-21        kinaba: #define MSGF_DDEMGR	0x8001
4e2933c620 2015-04-21        kinaba: #define CBR_BLOCK	((HDDEDATA)0xffffffff)
4e2933c620 2015-04-21        kinaba: +/
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	APPCLASS_STANDARD         = 0,
4e2933c620 2015-04-21        kinaba: 	APPCLASS_MONITOR          = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	APPCLASS_MASK             = 0x0000000F,
4e2933c620 2015-04-21        kinaba: 	APPCMD_CLIENTONLY         = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	APPCMD_FILTERINITS        = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	APPCMD_MASK               = 0x00000FF0,
4e2933c620 2015-04-21        kinaba: 	CBF_FAIL_SELFCONNECTIONS  = 0x00001000,
4e2933c620 2015-04-21        kinaba: 	CBF_FAIL_CONNECTIONS      = 0x00002000,
4e2933c620 2015-04-21        kinaba: 	CBF_FAIL_ADVISES          = 0x00004000,
4e2933c620 2015-04-21        kinaba: 	CBF_FAIL_EXECUTES         = 0x00008000,
4e2933c620 2015-04-21        kinaba: 	CBF_FAIL_POKES            = 0x00010000,
4e2933c620 2015-04-21        kinaba: 	CBF_FAIL_REQUESTS         = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	CBF_FAIL_ALLSVRXACTIONS   = 0x0003f000,
4e2933c620 2015-04-21        kinaba: 	CBF_SKIP_CONNECT_CONFIRMS = 0x00040000,
4e2933c620 2015-04-21        kinaba: 	CBF_SKIP_REGISTRATIONS    = 0x00080000,
4e2933c620 2015-04-21        kinaba: 	CBF_SKIP_UNREGISTRATIONS  = 0x00100000,
4e2933c620 2015-04-21        kinaba: 	CBF_SKIP_DISCONNECTS      = 0x00200000,
4e2933c620 2015-04-21        kinaba: 	CBF_SKIP_ALLNOTIFICATIONS = 0x003c0000,
4e2933c620 2015-04-21        kinaba: 	MF_HSZ_INFO               = 0x01000000,
4e2933c620 2015-04-21        kinaba: 	MF_SENDMSGS               = 0x02000000,
4e2933c620 2015-04-21        kinaba: 	MF_POSTMSGS               = 0x04000000,
4e2933c620 2015-04-21        kinaba: 	MF_CALLBACKS              = 0x08000000,
4e2933c620 2015-04-21        kinaba: 	MF_ERRORS                 = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	MF_LINKS                  = 0x20000000,
4e2933c620 2015-04-21        kinaba: 	MF_CONV                   = 0x40000000,
4e2933c620 2015-04-21        kinaba: 	MF_MASK                   = 0xFF000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT {
4e2933c620 2015-04-21        kinaba: 	EC_ENABLEALL    = 0,
4e2933c620 2015-04-21        kinaba: 	EC_ENABLEONE    = ST_BLOCKNEXT,
4e2933c620 2015-04-21        kinaba: 	EC_DISABLE      = ST_BLOCKED,
4e2933c620 2015-04-21        kinaba: 	EC_QUERYWAITING = 2
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT {
4e2933c620 2015-04-21        kinaba: 	DNS_REGISTER   = 1,
4e2933c620 2015-04-21        kinaba: 	DNS_UNREGISTER = 2,
4e2933c620 2015-04-21        kinaba: 	DNS_FILTERON   = 4,
4e2933c620 2015-04-21        kinaba: 	DNS_FILTEROFF  = 8
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /+
4e2933c620 2015-04-21        kinaba: #define HDATA_APPOWNED	1
4e2933c620 2015-04-21        kinaba: #define MAX_MONITORS	4
4e2933c620 2015-04-21        kinaba: +/
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : int {
4e2933c620 2015-04-21        kinaba: 	MH_CREATE  = 1,
4e2933c620 2015-04-21        kinaba: 	MH_KEEP    = 2,
4e2933c620 2015-04-21        kinaba: 	MH_DELETE  = 3,
4e2933c620 2015-04-21        kinaba: 	MH_CLEANUP = 4
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HCONVLIST");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HCONV");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HSZ");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HDDEDATA");
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows) alias HDDEDATA
4e2933c620 2015-04-21        kinaba:   function(UINT, UINT, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD) PFNCALLBACK;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct HSZPAIR {
4e2933c620 2015-04-21        kinaba: 	HSZ hszSvc;
4e2933c620 2015-04-21        kinaba: 	HSZ hszTopic;
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias HSZPAIR* PHSZPAIR;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct CONVCONTEXT {
4e2933c620 2015-04-21        kinaba: 	UINT                        cb = CONVCONTEXT.sizeof;
4e2933c620 2015-04-21        kinaba: 	UINT                        wFlags;
4e2933c620 2015-04-21        kinaba: 	UINT                        wCountryID;
4e2933c620 2015-04-21        kinaba: 	int                         iCodePage;
4e2933c620 2015-04-21        kinaba: 	DWORD                       dwLangID;
4e2933c620 2015-04-21        kinaba: 	DWORD                       dwSecurity;
4e2933c620 2015-04-21        kinaba: 	SECURITY_QUALITY_OF_SERVICE qos;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias CONVCONTEXT* PCONVCONTEXT;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct CONVINFO {
4e2933c620 2015-04-21        kinaba: 	DWORD       cb = CONVINFO.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD       hUser;
4e2933c620 2015-04-21        kinaba: 	HCONV       hConvPartner;
4e2933c620 2015-04-21        kinaba: 	HSZ         hszSvcPartner;
4e2933c620 2015-04-21        kinaba: 	HSZ         hszServiceReq;
4e2933c620 2015-04-21        kinaba: 	HSZ         hszTopic;
4e2933c620 2015-04-21        kinaba: 	HSZ         hszItem;
4e2933c620 2015-04-21        kinaba: 	UINT        wFmt;
4e2933c620 2015-04-21        kinaba: 	UINT        wType;
4e2933c620 2015-04-21        kinaba: 	UINT        wStatus;
4e2933c620 2015-04-21        kinaba: 	UINT        wConvst;
4e2933c620 2015-04-21        kinaba: 	UINT        wLastError;
4e2933c620 2015-04-21        kinaba: 	HCONVLIST   hConvList;
4e2933c620 2015-04-21        kinaba: 	CONVCONTEXT ConvCtxt;
4e2933c620 2015-04-21        kinaba: 	HWND        hwnd;
4e2933c620 2015-04-21        kinaba: 	HWND        hwndPartner;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias CONVINFO* PCONVINFO;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct DDEML_MSG_HOOK_DATA {
9b639cf2d6 2015-05-05        kinaba: 	UINT_PTR uiLo;
9b639cf2d6 2015-05-05        kinaba: 	UINT_PTR uiHi;
4e2933c620 2015-04-21        kinaba: 	DWORD    cbData;
4e2933c620 2015-04-21        kinaba: 	DWORD[8] Data;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MONHSZSTRUCT {
4e2933c620 2015-04-21        kinaba: 	UINT     cb = MONHSZSTRUCT.sizeof;
4e2933c620 2015-04-21        kinaba: 	int      fsAction;
4e2933c620 2015-04-21        kinaba: 	DWORD    dwTime;
4e2933c620 2015-04-21        kinaba: 	HSZ      hsz;
4e2933c620 2015-04-21        kinaba: 	HANDLE   hTask;
4e2933c620 2015-04-21        kinaba: 	TCHAR[1] _str;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	TCHAR* str() { return _str.ptr; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MONHSZSTRUCT* PMONHSZSTRUCT;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MONLINKSTRUCT {
4e2933c620 2015-04-21        kinaba: 	UINT   cb = MONLINKSTRUCT.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwTime;
4e2933c620 2015-04-21        kinaba: 	HANDLE hTask;
4e2933c620 2015-04-21        kinaba: 	BOOL   fEstablished;
4e2933c620 2015-04-21        kinaba: 	BOOL   fNoData;
4e2933c620 2015-04-21        kinaba: 	HSZ    hszSvc;
4e2933c620 2015-04-21        kinaba: 	HSZ    hszTopic;
4e2933c620 2015-04-21        kinaba: 	HSZ    hszItem;
4e2933c620 2015-04-21        kinaba: 	UINT   wFmt;
4e2933c620 2015-04-21        kinaba: 	BOOL   fServer;
4e2933c620 2015-04-21        kinaba: 	HCONV  hConvServer;
4e2933c620 2015-04-21        kinaba: 	HCONV  hConvClient;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MONLINKSTRUCT* PMONLINKSTRUCT;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MONCONVSTRUCT {
4e2933c620 2015-04-21        kinaba: 	UINT   cb = MONCONVSTRUCT.sizeof;
4e2933c620 2015-04-21        kinaba: 	BOOL   fConnect;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwTime;
4e2933c620 2015-04-21        kinaba: 	HANDLE hTask;
4e2933c620 2015-04-21        kinaba: 	HSZ    hszSvc;
4e2933c620 2015-04-21        kinaba: 	HSZ    hszTopic;
4e2933c620 2015-04-21        kinaba: 	HCONV  hConvClient;
4e2933c620 2015-04-21        kinaba: 	HCONV  hConvServer;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MONCONVSTRUCT* PMONCONVSTRUCT;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MONCBSTRUCT {
4e2933c620 2015-04-21        kinaba: 	UINT        cb = MONCBSTRUCT.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD       dwTime;
4e2933c620 2015-04-21        kinaba: 	HANDLE      hTask;
4e2933c620 2015-04-21        kinaba: 	DWORD       dwRet;
4e2933c620 2015-04-21        kinaba: 	UINT        wType;
4e2933c620 2015-04-21        kinaba: 	UINT        wFmt;
4e2933c620 2015-04-21        kinaba: 	HCONV       hConv;
4e2933c620 2015-04-21        kinaba: 	HSZ         hsz1;
4e2933c620 2015-04-21        kinaba: 	HSZ         hsz2;
4e2933c620 2015-04-21        kinaba: 	HDDEDATA    hData;
4e2933c620 2015-04-21        kinaba: 	ULONG_PTR   dwData1;
4e2933c620 2015-04-21        kinaba: 	ULONG_PTR   dwData2;
4e2933c620 2015-04-21        kinaba: 	CONVCONTEXT cc;
4e2933c620 2015-04-21        kinaba: 	DWORD       cbData;
4e2933c620 2015-04-21        kinaba: 	DWORD[8]    Data;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MONCBSTRUCT* PMONCBSTRUCT;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MONERRSTRUCT {
4e2933c620 2015-04-21        kinaba: 	UINT   cb = MONERRSTRUCT.sizeof;
4e2933c620 2015-04-21        kinaba: 	UINT   wLastError;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwTime;
4e2933c620 2015-04-21        kinaba: 	HANDLE hTask;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MONERRSTRUCT* PMONERRSTRUCT;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MONMSGSTRUCT {
4e2933c620 2015-04-21        kinaba: 	UINT   cb = MONMSGSTRUCT.sizeof;
4e2933c620 2015-04-21        kinaba: 	HWND   hwndTo;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwTime;
4e2933c620 2015-04-21        kinaba: 	HANDLE hTask;
4e2933c620 2015-04-21        kinaba: 	UINT   wMsg;
4e2933c620 2015-04-21        kinaba: 	WPARAM wParam;
4e2933c620 2015-04-21        kinaba: 	LPARAM lParam;
4e2933c620 2015-04-21        kinaba: 	DDEML_MSG_HOOK_DATA dmhd;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MONMSGSTRUCT* PMONMSGSTRUCT;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows) {
4e2933c620 2015-04-21        kinaba: 	BOOL DdeAbandonTransaction(DWORD, HCONV, DWORD);
4e2933c620 2015-04-21        kinaba: 	PBYTE DdeAccessData(HDDEDATA, PDWORD);
4e2933c620 2015-04-21        kinaba: 	HDDEDATA DdeAddData(HDDEDATA, PBYTE, DWORD, DWORD);
4e2933c620 2015-04-21        kinaba: 	HDDEDATA DdeClientTransaction(PBYTE, DWORD, HCONV, HSZ, UINT, UINT,
4e2933c620 2015-04-21        kinaba: 	  DWORD, PDWORD);
4e2933c620 2015-04-21        kinaba: 	int DdeCmpStringHandles(HSZ, HSZ);
4e2933c620 2015-04-21        kinaba: 	HCONV DdeConnect(DWORD, HSZ, HSZ, PCONVCONTEXT);
4e2933c620 2015-04-21        kinaba: 	HCONVLIST DdeConnectList(DWORD, HSZ, HSZ, HCONVLIST, PCONVCONTEXT);
4e2933c620 2015-04-21        kinaba: 	HDDEDATA DdeCreateDataHandle(DWORD, PBYTE, DWORD, DWORD, HSZ, UINT,
4e2933c620 2015-04-21        kinaba: 	  UINT);
4e2933c620 2015-04-21        kinaba: 	HSZ DdeCreateStringHandleA(DWORD, LPSTR, int);
4e2933c620 2015-04-21        kinaba: 	HSZ DdeCreateStringHandleW(DWORD, LPWSTR, int);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeDisconnect(HCONV);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeDisconnectList(HCONVLIST);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeEnableCallback(DWORD, HCONV, UINT);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeFreeDataHandle(HDDEDATA);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeFreeStringHandle(DWORD, HSZ);
4e2933c620 2015-04-21        kinaba: 	DWORD DdeGetData(HDDEDATA, PBYTE, DWORD, DWORD);
4e2933c620 2015-04-21        kinaba: 	UINT DdeGetLastError(DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeImpersonateClient(HCONV);
4e2933c620 2015-04-21        kinaba: 	UINT DdeInitializeA(PDWORD, PFNCALLBACK, DWORD, DWORD);
4e2933c620 2015-04-21        kinaba: 	UINT DdeInitializeW(PDWORD, PFNCALLBACK, DWORD, DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeKeepStringHandle(DWORD, HSZ);
4e2933c620 2015-04-21        kinaba: 	HDDEDATA DdeNameService(DWORD, HSZ, HSZ, UINT);
4e2933c620 2015-04-21        kinaba: 	BOOL DdePostAdvise(DWORD, HSZ, HSZ);
4e2933c620 2015-04-21        kinaba: 	UINT DdeQueryConvInfo(HCONV, DWORD, PCONVINFO);
4e2933c620 2015-04-21        kinaba: 	HCONV DdeQueryNextServer(HCONVLIST, HCONV);
4e2933c620 2015-04-21        kinaba: 	DWORD DdeQueryStringA(DWORD, HSZ, LPSTR, DWORD, int);
4e2933c620 2015-04-21        kinaba: 	DWORD DdeQueryStringW(DWORD, HSZ, LPWSTR, DWORD, int);
4e2933c620 2015-04-21        kinaba: 	HCONV DdeReconnect(HCONV);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeSetUserHandle(HCONV, DWORD, DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeUnaccessData(HDDEDATA);
4e2933c620 2015-04-21        kinaba: 	BOOL DdeUninitialize(DWORD);
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: const TCHAR[]
4e2933c620 2015-04-21        kinaba: 	SZDDESYS_TOPIC         = "System",
4e2933c620 2015-04-21        kinaba: 	SZDDESYS_ITEM_TOPICS   = "Topics",
4e2933c620 2015-04-21        kinaba: 	SZDDESYS_ITEM_SYSITEMS = "SysItems",
4e2933c620 2015-04-21        kinaba: 	SZDDESYS_ITEM_RTNMSG   = "ReturnMessage",
4e2933c620 2015-04-21        kinaba: 	SZDDESYS_ITEM_STATUS   = "Status",
4e2933c620 2015-04-21        kinaba: 	SZDDESYS_ITEM_FORMATS  = "Formats",
4e2933c620 2015-04-21        kinaba: 	SZDDESYS_ITEM_HELP     = "Help",
4e2933c620 2015-04-21        kinaba: 	SZDDE_ITEM_ITEMLIST    = "TopicItemList";
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias DdeCreateStringHandleW DdeCreateStringHandle;
4e2933c620 2015-04-21        kinaba: 	alias DdeInitializeW DdeInitialize;
4e2933c620 2015-04-21        kinaba: 	alias DdeQueryStringW DdeQueryString;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias DdeCreateStringHandleA DdeCreateStringHandle;
4e2933c620 2015-04-21        kinaba: 	alias DdeInitializeA DdeInitialize;
4e2933c620 2015-04-21        kinaba: 	alias DdeQueryStringA DdeQueryString;
4e2933c620 2015-04-21        kinaba: }