ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ddeml.h
Go to the documentation of this file.
00001 /*
00002  * DDEML library definitions
00003  *
00004  * Copyright 1997 Alexandre Julliard
00005  * Copyright 1997 Len White
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00020  */
00021 
00022 #ifndef __WINE_DDEML_H
00023 #define __WINE_DDEML_H
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif /* defined(__cplusplus) */
00028 
00029 /* Codepage Constants
00030  */
00031 
00032 #define CP_WINANSI      1004
00033 #define CP_WINUNICODE   1200
00034 
00035 /* DDE synchronisation constants
00036  */
00037 
00038 #define MSGF_DDEMGR 0x8001
00039 
00040 #define QID_SYNC    0xFFFFFFFF
00041 
00042 /*   Type variation for MS  deliberate departures from ANSI standards
00043  */
00044 
00045 #define EXPENTRY CALLBACK
00046 
00047 #define SZDDESYS_TOPIC      TEXT("System")
00048 #define SZDDESYS_ITEM_TOPICS    TEXT("Topics")
00049 #define SZDDESYS_ITEM_SYSITEMS  TEXT("SysItems")
00050 #define SZDDESYS_ITEM_RTNMSG    TEXT("ReturnMessage")
00051 #define SZDDESYS_ITEM_STATUS    TEXT("Status")
00052 #define SZDDESYS_ITEM_FORMATS   TEXT("Formats")
00053 #define SZDDESYS_ITEM_HELP  TEXT("Help")
00054 #define SZDDE_ITEM_ITEMLIST TEXT("TopicItemList")
00055 
00056 /***************************************************
00057 
00058       FLAGS Section - copied from Microsoft SDK as must be standard, probably Copyright Microsoft Corporation
00059 
00060 ***************************************************/
00061 
00062 #define     XST_NULL              0
00063 #define     XST_INCOMPLETE        1
00064 #define     XST_CONNECTED         2
00065 #define     XST_INIT1             3
00066 #define     XST_INIT2             4
00067 #define     XST_REQSENT           5
00068 #define     XST_DATARCVD          6
00069 #define     XST_POKESENT          7
00070 #define     XST_POKEACKRCVD       8
00071 #define     XST_EXECSENT          9
00072 #define     XST_EXECACKRCVD      10
00073 #define     XST_ADVSENT          11
00074 #define     XST_UNADVSENT        12
00075 #define     XST_ADVACKRCVD       13
00076 #define     XST_UNADVACKRCVD     14
00077 #define     XST_ADVDATASENT      15
00078 #define     XST_ADVDATAACKRCVD   16
00079 
00080 #define     ST_CONNECTED            0x0001
00081 #define     ST_ADVISE               0x0002
00082 #define     ST_ISLOCAL              0x0004
00083 #define     ST_BLOCKED              0x0008
00084 #define     ST_CLIENT               0x0010
00085 #define     ST_TERMINATED           0x0020
00086 #define     ST_INLIST               0x0040
00087 #define     ST_BLOCKNEXT            0x0080
00088 #define     ST_ISSELF               0x0100
00089 
00090 /*
00091  * DdeEnableCallback function codes
00092  */
00093 
00094 #define     EC_ENABLEALL                 0
00095 #define     EC_ENABLEONE                 ST_BLOCKNEXT
00096 #define     EC_DISABLE                   ST_BLOCKED
00097 #define     EC_QUERYWAITING              2
00098 
00099 /*
00100  * Callback filter flags for use with standard apps.
00101  */
00102 
00103 #define     CBF_FAIL_SELFCONNECTIONS     0x00001000
00104 #define     CBF_FAIL_CONNECTIONS         0x00002000
00105 #define     CBF_FAIL_ADVISES             0x00004000
00106 #define     CBF_FAIL_EXECUTES            0x00008000
00107 #define     CBF_FAIL_POKES               0x00010000
00108 #define     CBF_FAIL_REQUESTS            0x00020000
00109 #define     CBF_FAIL_ALLSVRXACTIONS      0x0003f000
00110 
00111 #define     CBF_SKIP_CONNECT_CONFIRMS    0x00040000
00112 #define     CBF_SKIP_REGISTRATIONS       0x00080000
00113 #define     CBF_SKIP_UNREGISTRATIONS     0x00100000
00114 #define     CBF_SKIP_DISCONNECTS         0x00200000
00115 #define     CBF_SKIP_ALLNOTIFICATIONS    0x003c0000
00116 
00117 #define     CBR_BLOCK                    ((HDDEDATA)~0UL)
00118 
00119 /*
00120  * Application command flags
00121  */
00122 #define     APPCMD_CLIENTONLY            0x00000010L
00123 #define     APPCMD_FILTERINITS           0x00000020L
00124 #define     APPCMD_MASK                  0x00000FF0L
00125 
00126 /*
00127  * Application classification flags
00128  */
00129 
00130 #define     APPCLASS_STANDARD            0x00000000L
00131 #define     APPCLASS_MONITOR             0x00000001L
00132 #define     APPCLASS_MASK                0x0000000FL
00133 
00134 /*
00135  * Callback filter flags for use with MONITOR apps - 0 implies no monitor
00136  * callbacks.
00137  */
00138 #define     MF_HSZ_INFO                  0x01000000
00139 #define     MF_SENDMSGS                  0x02000000
00140 #define     MF_POSTMSGS                  0x04000000
00141 #define     MF_CALLBACKS                 0x08000000
00142 #define     MF_ERRORS                    0x10000000
00143 #define     MF_LINKS                     0x20000000
00144 #define     MF_CONV                      0x40000000
00145 
00146 #define     MF_MASK                      0xFF000000
00147 
00148 /*
00149  *  DdeNameService service name flags
00150  */
00151 
00152 #define     DNS_REGISTER         0x0001
00153 #define     DNS_UNREGISTER       0x0002
00154 #define     DNS_FILTERON         0x0004
00155 #define     DNS_FILTEROFF            0x0008
00156 
00157 
00158 /****************************************************
00159 
00160       End of Flags section
00161 
00162 ****************************************************/
00163 
00164 /****************************************************
00165 
00166     Message Types Section
00167 
00168 ****************************************************/
00169 
00170 #define XTYPF_NOBLOCK       0x0002      /* CBR_NOBLOCK will not work */
00171 #define XTYPF_NODATA        0x0004      /* DDE_FDEFERUPD  */
00172 #define XTYPF_ACKREQ        0x0008      /* DDE_FACKREQ */
00173 
00174 #define XCLASS_MASK     0xFC00
00175 #define XCLASS_BOOL     0x1000
00176 #define XCLASS_DATA     0x2000
00177 #define XCLASS_FLAGS        0x4000
00178 #define XCLASS_NOTIFICATION 0x8000
00179 
00180 #define XTYP_ERROR      (0x0000 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
00181 #define XTYP_ADVDATA        (0x0010 | XCLASS_FLAGS)
00182 #define XTYP_ADVREQ     (0x0020 | XCLASS_DATA | XTYPF_NOBLOCK)
00183 #define XTYP_ADVSTART       (0x0030 | XCLASS_BOOL)
00184 #define XTYP_ADVSTOP        (0x0040 | XCLASS_NOTIFICATION)
00185 #define XTYP_EXECUTE        (0x0050 | XCLASS_FLAGS)
00186 #define XTYP_CONNECT        (0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK)
00187 #define XTYP_CONNECT_CONFIRM    (0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
00188 #define XTYP_XACT_COMPLETE  (0x0080 | XCLASS_NOTIFICATION )
00189 #define XTYP_POKE       (0x0090 | XCLASS_FLAGS)
00190 #define XTYP_REGISTER       (0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK )
00191 #define XTYP_REQUEST        (0x00B0 | XCLASS_DATA )
00192 #define XTYP_DISCONNECT     (0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK )
00193 #define XTYP_UNREGISTER     (0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK )
00194 #define XTYP_WILDCONNECT    (0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK)
00195 #define XTYP_MONITOR        (0x00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
00196 
00197 #define XTYP_MASK       0x00F0
00198 #define XTYP_SHIFT      4
00199 
00200 #define TIMEOUT_ASYNC           0xFFFFFFFF
00201 
00202 #define CADV_LATEACK        0xFFFF
00203 
00204 /**************************************************
00205 
00206     End of Message Types Section
00207 
00208 ****************************************************/
00209 
00210 /*****************************************************
00211 
00212     DDE Codes for wStatus field
00213 
00214 *****************************************************/
00215 
00216 #define DDE_FACK        0x8000
00217 #define DDE_FBUSY       0x4000
00218 #define DDE_FDEFERUPD       0x4000
00219 #define DDE_FACKREQ     0x8000
00220 #define DDE_FRELEASE        0x2000
00221 #define DDE_FREQUESTED      0x1000
00222 #define DDE_FAPPSTATUS      0x00FF
00223 #define DDE_FNOTPROCESSED   0x0000
00224 
00225 #define DDE_FACKRESERVED        (~(DDE_FACK | DDE_FBUSY | DDE_FAPPSTATUS))
00226 #define DDE_FADVRESERVED        (~(DDE_FACKREQ | DDE_FDEFERUPD))
00227 #define DDE_FDATRESERVED        (~(DDE_FACKREQ | DDE_FRELEASE | DDE_FREQUESTED))
00228 #define DDE_FPOKRESERVED        (~(DDE_FRELEASE))
00229 
00230 /*****************************************************
00231 
00232     End of wStatus codes
00233 
00234 *****************************************************/
00235 
00236 /****************************************************
00237 
00238       Return Codes section again copied from SDK as must be same
00239 
00240 *****************************************************/
00241 
00242 #define     DMLERR_NO_ERROR                    0       /* must be 0 */
00243 
00244 #define     DMLERR_FIRST                       0x4000
00245 
00246 #define     DMLERR_ADVACKTIMEOUT               0x4000
00247 #define     DMLERR_BUSY                        0x4001
00248 #define     DMLERR_DATAACKTIMEOUT              0x4002
00249 #define     DMLERR_DLL_NOT_INITIALIZED         0x4003
00250 #define     DMLERR_DLL_USAGE                   0x4004
00251 #define     DMLERR_EXECACKTIMEOUT              0x4005
00252 #define     DMLERR_INVALIDPARAMETER            0x4006
00253 #define     DMLERR_LOW_MEMORY                  0x4007
00254 #define     DMLERR_MEMORY_ERROR                0x4008
00255 #define     DMLERR_NOTPROCESSED                0x4009
00256 #define     DMLERR_NO_CONV_ESTABLISHED         0x400a
00257 #define     DMLERR_POKEACKTIMEOUT              0x400b
00258 #define     DMLERR_POSTMSG_FAILED              0x400c
00259 #define     DMLERR_REENTRANCY                  0x400d
00260 #define     DMLERR_SERVER_DIED                 0x400e
00261 #define     DMLERR_SYS_ERROR                   0x400f
00262 #define     DMLERR_UNADVACKTIMEOUT             0x4010
00263 #define     DMLERR_UNFOUND_QUEUE_ID            0x4011
00264 
00265 #define     DMLERR_LAST                        0x4011
00266 
00267 #define     HDATA_APPOWNED                     0x0001
00268 
00269 /*****************************************************
00270 
00271       End of Return Codes and Microsoft section
00272 
00273 ******************************************************/
00274 
00275 
00276 
00277 DECLARE_HANDLE(HCONVLIST);
00278 DECLARE_HANDLE(HCONV);
00279 DECLARE_HANDLE(HSZ);
00280 DECLARE_HANDLE(HDDEDATA);
00281 
00282 
00283 
00284 /*******************************************************
00285 
00286     API Entry Points
00287 
00288 *******************************************************/
00289 
00290 typedef HDDEDATA (CALLBACK *PFNCALLBACK)(UINT, UINT, HCONV, HSZ, HSZ,
00291                      HDDEDATA, ULONG_PTR, ULONG_PTR);
00292 
00293 /***************************************************
00294 
00295     Externally visible data structures
00296 
00297 ***************************************************/
00298 
00299 typedef struct tagHSZPAIR
00300 {
00301     HSZ hszSvc;
00302     HSZ hszTopic;
00303 } HSZPAIR, *PHSZPAIR;
00304 
00305 typedef struct tagCONVCONTEXT
00306 {
00307     UINT  cb;
00308     UINT  wFlags;
00309     UINT  wCountryID;
00310     INT   iCodePage;
00311     DWORD   dwLangID;
00312     DWORD   dwSecurity;
00313 } CONVCONTEXT, *PCONVCONTEXT;
00314 
00315 typedef struct tagCONVINFO
00316 {
00317     DWORD       cb;
00318     DWORD       hUser;
00319     HCONV       hConvPartner;
00320     HSZ         hszSvcPartner;
00321     HSZ         hszServiceReq;
00322     HSZ         hszTopic;
00323     HSZ         hszItem;
00324     UINT        wFmt;
00325     UINT        wType;
00326     UINT        wStatus;
00327     UINT        wConvst;
00328     UINT        wLastError;
00329     HCONVLIST       hConvList;
00330     CONVCONTEXT     ConvCtxt;
00331     HWND        hwnd;
00332     HWND        hwndPartner;
00333 } CONVINFO, *PCONVINFO;
00334 
00335 /*            Interface Definitions     */
00336 
00337 
00338 UINT    WINAPI DdeInitializeA(LPDWORD,PFNCALLBACK,DWORD,DWORD);
00339 UINT    WINAPI DdeInitializeW(LPDWORD,PFNCALLBACK,DWORD,DWORD);
00340 #define   DdeInitialize WINELIB_NAME_AW(DdeInitialize)
00341 BOOL    WINAPI DdeUninitialize(DWORD);
00342 HCONVLIST WINAPI DdeConnectList(DWORD,HSZ,HSZ,HCONVLIST,PCONVCONTEXT);
00343 HCONV     WINAPI DdeQueryNextServer(HCONVLIST, HCONV);
00344 DWORD     WINAPI DdeQueryStringA(DWORD, HSZ, LPSTR, DWORD, INT);
00345 DWORD     WINAPI DdeQueryStringW(DWORD, HSZ, LPWSTR, DWORD, INT);
00346 #define   DdeQueryString WINELIB_NAME_AW(DdeQueryString)
00347 BOOL      WINAPI DdeDisconnectList(HCONVLIST);
00348 HCONV     WINAPI DdeConnect(DWORD,HSZ,HSZ,PCONVCONTEXT);
00349 BOOL      WINAPI DdeDisconnect(HCONV);
00350 HDDEDATA  WINAPI DdeCreateDataHandle(DWORD,LPBYTE,DWORD,DWORD,HSZ,UINT,UINT);
00351 HCONV     WINAPI DdeReconnect(HCONV);
00352 HSZ       WINAPI DdeCreateStringHandleA(DWORD,LPCSTR,INT);
00353 HSZ       WINAPI DdeCreateStringHandleW(DWORD,LPCWSTR,INT);
00354 #define   DdeCreateStringHandle WINELIB_NAME_AW(DdeCreateStringHandle)
00355 BOOL      WINAPI DdeFreeStringHandle(DWORD,HSZ);
00356 BOOL      WINAPI DdeFreeDataHandle(HDDEDATA);
00357 BOOL      WINAPI DdeKeepStringHandle(DWORD,HSZ);
00358 HDDEDATA  WINAPI DdeClientTransaction(LPBYTE,DWORD,HCONV,HSZ,UINT,UINT,DWORD,LPDWORD);
00359 BOOL      WINAPI DdeAbandonTransaction(DWORD idInst, HCONV hConv, DWORD idTransaction);
00360 BOOL      WINAPI DdeImpersonateClient(HCONV);
00361 BOOL      WINAPI DdePostAdvise(DWORD,HSZ,HSZ);
00362 HDDEDATA  WINAPI DdeAddData(HDDEDATA,LPBYTE,DWORD,DWORD);
00363 DWORD     WINAPI DdeGetData(HDDEDATA,LPBYTE,DWORD,DWORD);
00364 LPBYTE    WINAPI DdeAccessData(HDDEDATA,LPDWORD);
00365 BOOL      WINAPI DdeUnaccessData(HDDEDATA);
00366 BOOL      WINAPI DdeEnableCallback(DWORD,HCONV,UINT);
00367 INT       WINAPI DdeCmpStringHandles(HSZ,HSZ);
00368 BOOL      WINAPI DdeSetUserHandle(HCONV,DWORD,DWORD);
00369 
00370 HDDEDATA  WINAPI DdeNameService(DWORD,HSZ,HSZ,UINT);
00371 UINT      WINAPI DdeGetLastError(DWORD);
00372 UINT      WINAPI DdeQueryConvInfo(HCONV,DWORD,PCONVINFO);
00373 
00374 #ifdef __cplusplus
00375 } /* extern "C" */
00376 #endif /* defined(__cplusplus) */
00377 
00378 #endif  /* __WINE_DDEML_H */

Generated on Sat May 26 2012 04:30:01 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.