home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 May / Pcwk5b98.iso / Borland / Cplus45 / BC45 / MSINC.PAK / DDE.H < prev    next >
C/C++ Source or Header  |  1995-08-29  |  10KB  |  342 lines

  1. /*****************************************************************************\
  2. *                                                                             *
  3. * dde.h -       Dynamic Data Exchange structures and definitions              *
  4. *                                                                             *
  5. \*****************************************************************************/
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 6.5
  9.  *
  10.  *      Copyright (c) 1994 by Borland International
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14.  
  15. #if !defined(__FLAT__)
  16. #ifndef __DDE_H         /* prevent multiple includes */
  17. #define __DDE_H
  18.  
  19. #ifndef RC_INVOKED
  20. #pragma option -a-      /* Assume byte packing throughout */
  21. #pragma warn -bbf       /* Turn off warning about bitfields */
  22. #endif  /* RC_INVOKED */
  23.  
  24. #ifndef __WINDOWS_H
  25. #include <windows.h>    /* <windows.h> must be included */
  26. #endif  /* __WINDOWS_H */
  27.  
  28. #ifndef RC_INVOKED
  29. #pragma option -a-      /* Assume byte packing throughout */
  30. #pragma warn -bbf       /* Turn off warning about bitfields */
  31. #endif  /* RC_INVOKED */
  32.  
  33. #ifdef __cplusplus
  34. extern "C" {            /* Assume C declarations for C++ */
  35. #endif  /* __cplusplus */
  36.  
  37. /* DDE window messages */
  38.  
  39. #define WM_DDE_FIRST        0x03E0
  40. #define WM_DDE_INITIATE     (WM_DDE_FIRST)
  41. #define WM_DDE_TERMINATE    (WM_DDE_FIRST+1)
  42. #define WM_DDE_ADVISE       (WM_DDE_FIRST+2)
  43. #define WM_DDE_UNADVISE     (WM_DDE_FIRST+3)
  44. #define WM_DDE_ACK          (WM_DDE_FIRST+4)
  45. #define WM_DDE_DATA         (WM_DDE_FIRST+5)
  46. #define WM_DDE_REQUEST      (WM_DDE_FIRST+6)
  47. #define WM_DDE_POKE         (WM_DDE_FIRST+7)
  48. #define WM_DDE_EXECUTE      (WM_DDE_FIRST+8)
  49. #define WM_DDE_LAST         (WM_DDE_FIRST+8)
  50.  
  51. /****************************************************************************\
  52. *       DDEACK structure
  53. *
  54. *       Structure of wStatus (LOWORD(lParam)) in WM_DDE_ACK message
  55. *       sent in response to a WM_DDE_DATA, WM_DDE_REQUEST, WM_DDE_POKE,
  56. *       WM_DDE_ADVISE, or WM_DDE_UNADVISE message.
  57. *
  58. \****************************************************************************/
  59.  
  60. typedef struct tagDDEACK
  61. {
  62.     WORD    bAppReturnCode:8,
  63.             reserved:6,
  64.             fBusy:1,
  65.             fAck:1;
  66. } DDEACK;
  67.  
  68. /****************************************************************************\
  69. *       DDEADVISE structure
  70. *
  71. *       WM_DDE_ADVISE parameter structure for hOptions (LOWORD(lParam))
  72. *
  73. \****************************************************************************/
  74.  
  75. typedef struct tagDDEADVISE
  76. {
  77.     WORD    reserved:14,
  78.             fDeferUpd:1,
  79.             fAckReq:1;
  80.     short   cfFormat;
  81. } DDEADVISE;
  82.  
  83. /****************************************************************************\
  84. *       DDEDATA structure
  85. *
  86. *       WM_DDE_DATA parameter structure for hData (LOWORD(lParam)).
  87. *       The actual size of this structure depends on the size of
  88. *       the Value array.
  89. *
  90. \****************************************************************************/
  91.  
  92. typedef struct tagDDEDATA
  93. {
  94.     WORD    unused:12,
  95.             fResponse:1,
  96.             fRelease:1,
  97.             reserved:1,
  98.             fAckReq:1;
  99.     short   cfFormat;
  100.     BYTE     Value[1];
  101. } DDEDATA;
  102.  
  103.  
  104. /****************************************************************************\
  105. *       DDEPOKE structure
  106. *
  107. *       WM_DDE_POKE parameter structure for hData (LOWORD(lParam)).
  108. *       The actual size of this structure depends on the size of
  109. *       the Value array.
  110. *
  111. \****************************************************************************/
  112.  
  113. typedef struct tagDDEPOKE
  114. {
  115.     WORD    unused:13,  /* Earlier versions of DDE.H incorrectly */
  116.                         /* 12 unused bits.                       */
  117.             fRelease:1,
  118.             fReserved:2;
  119.     short   cfFormat;
  120.     BYTE    Value[1];   /* This member was named rgb[1] in previous */
  121.                         /* versions of DDE.H                        */
  122.  
  123. } DDEPOKE;
  124.  
  125. /****************************************************************************\
  126. * The following typedef's were used in previous versions of the Windows SDK.
  127. * They are still valid.  The above typedef's define exactly the same structures
  128. * as those below.  The above typedef names are recommended, however, as they
  129. * are more meaningful.
  130. *
  131. * Note that the DDEPOKE structure typedef'ed in earlier versions of DDE.H did
  132. * not correctly define the bit positions.
  133. \****************************************************************************/
  134.  
  135. typedef struct tagDDELN
  136. {
  137.     WORD    unused:13,
  138.             fRelease:1,
  139.             fDeferUpd:1,
  140.             fAckReq:1;
  141.     short   cfFormat;
  142. } DDELN;
  143.  
  144. typedef struct tagDDEUP
  145. {
  146.     WORD    unused:12,
  147.             fAck:1,
  148.             fRelease:1,
  149.             fReserved:1,
  150.             fAckReq:1;
  151.     short   cfFormat;
  152.     BYTE    rgb[1];
  153. } DDEUP;
  154.  
  155. #ifdef __cplusplus
  156. }                       /* End of extern "C" { */
  157. #endif  /* __cplusplus */
  158.  
  159. #ifndef RC_INVOKED
  160. #pragma option -a.      /* Revert to default packing */
  161. #pragma warn .bbf       /* Revert to default warning about bitfields */
  162. #endif  /* RC_INVOKED */
  163.  
  164. #endif  /* __DDE_H */
  165.  
  166.  
  167. #else     /* defined __FLAT__ */
  168. /*****************************************************************************\
  169. *                                                                             *
  170. * dde.h -       Dynamic Data Exchange structures and definitions              *
  171. *                                                                             *
  172. * Copyright (c) 1993-1995, Microsoft Corp.    All rights reserved          *
  173. *                                                                             *
  174. \*****************************************************************************/
  175. #ifndef _DDEHEADER_INCLUDED_
  176. #define _DDEHEADER_INCLUDED_
  177.  
  178. #ifndef _WINDEF_
  179. #include <windef.h>
  180. #endif
  181.  
  182. #ifdef __cplusplus
  183. extern "C" {
  184. #endif
  185.  
  186. /* DDE window messages */
  187.  
  188. #define WM_DDE_FIRST        0x03E0
  189. #define WM_DDE_INITIATE     (WM_DDE_FIRST)
  190. #define WM_DDE_TERMINATE    (WM_DDE_FIRST+1)
  191. #define WM_DDE_ADVISE        (WM_DDE_FIRST+2)
  192. #define WM_DDE_UNADVISE     (WM_DDE_FIRST+3)
  193. #define WM_DDE_ACK            (WM_DDE_FIRST+4)
  194. #define WM_DDE_DATA            (WM_DDE_FIRST+5)
  195. #define WM_DDE_REQUEST        (WM_DDE_FIRST+6)
  196. #define WM_DDE_POKE            (WM_DDE_FIRST+7)
  197. #define WM_DDE_EXECUTE        (WM_DDE_FIRST+8)
  198. #define WM_DDE_LAST            (WM_DDE_FIRST+8)
  199.  
  200. #if !defined(RC_INVOKED)
  201. #pragma warn -bbf
  202. #endif
  203.  
  204. /*----------------------------------------------------------------------------
  205. |       DDEACK structure
  206. |
  207. |    Structure of wStatus (LOWORD(lParam)) in WM_DDE_ACK message
  208. |       sent in response to a WM_DDE_DATA, WM_DDE_REQUEST, WM_DDE_POKE,
  209. |       WM_DDE_ADVISE, or WM_DDE_UNADVISE message.
  210. |
  211. ----------------------------------------------------------------------------*/
  212.  
  213. typedef struct {
  214.         unsigned short bAppReturnCode:8,
  215.                  reserved:6,
  216.                  fBusy:1,
  217.          fAck:1;
  218. } DDEACK;
  219.  
  220.  
  221. /*----------------------------------------------------------------------------
  222. |       DDEADVISE structure
  223. |
  224. |    WM_DDE_ADVISE parameter structure for hOptions (LOWORD(lParam))
  225. |
  226. ----------------------------------------------------------------------------*/
  227.  
  228. typedef struct {
  229.         unsigned short reserved:14,
  230.                  fDeferUpd:1,
  231.          fAckReq:1;
  232.     short     cfFormat;
  233. } DDEADVISE;
  234.  
  235.  
  236. /*----------------------------------------------------------------------------
  237. |       DDEDATA structure
  238. |
  239. |       WM_DDE_DATA parameter structure for hData (LOWORD(lParam)).
  240. |       The actual size of this structure depends on the size of
  241. |       the Value array.
  242. |
  243. ----------------------------------------------------------------------------*/
  244.  
  245. typedef struct {
  246.     unsigned short unused:12,
  247.                  fResponse:1,
  248.                  fRelease:1,
  249.                  reserved:1,
  250.                  fAckReq:1;
  251.     short     cfFormat;
  252.     BYTE     Value[1];
  253. } DDEDATA;
  254.  
  255.  
  256. /*----------------------------------------------------------------------------
  257. |    DDEPOKE structure
  258. |
  259. |    WM_DDE_POKE parameter structure for hData (LOWORD(lParam)).
  260. |       The actual size of this structure depends on the size of
  261. |       the Value array.
  262. |
  263. ----------------------------------------------------------------------------*/
  264.  
  265. typedef struct {
  266.     unsigned short unused:13,  /* Earlier versions of DDE.H incorrectly */
  267.                              /* 12 unused bits.                       */
  268.          fRelease:1,
  269.          fReserved:2;
  270.     short    cfFormat;
  271.     BYTE     Value[1];  /* This member was named rgb[1] in previous */
  272.                             /* versions of DDE.H                        */
  273.  
  274. } DDEPOKE;
  275.  
  276. /*----------------------------------------------------------------------------
  277. The following typedef's were used in previous versions of the Windows SDK.
  278. They are still valid.  The above typedef's define exactly the same structures
  279. as those below.  The above typedef names are recommended, however, as they
  280. are more meaningful.
  281.  
  282. Note that the DDEPOKE structure typedef'ed in earlier versions of DDE.H did
  283. not correctly define the bit positions.
  284. ----------------------------------------------------------------------------*/
  285.  
  286. typedef struct {
  287.         unsigned short unused:13,
  288.                  fRelease:1,
  289.                  fDeferUpd:1,
  290.          fAckReq:1;
  291.     short     cfFormat;
  292. } DDELN;
  293.  
  294. typedef struct {
  295.     unsigned short unused:12,
  296.                  fAck:1,
  297.                  fRelease:1,
  298.                  fReserved:1,
  299.                  fAckReq:1;
  300.     short     cfFormat;
  301.     BYTE     rgb[1];
  302. } DDEUP;
  303.  
  304.  
  305. #if !defined(RC_INVOKED)
  306. #pragma warn .bbf
  307. #endif
  308.  
  309. /*
  310.  * DDE SECURITY
  311.  */
  312.  
  313. BOOL
  314. WINAPI
  315. DdeSetQualityOfService(
  316.     HWND hwndClient,
  317.     CONST SECURITY_QUALITY_OF_SERVICE *pqosNew,
  318.     PSECURITY_QUALITY_OF_SERVICE pqosPrev);
  319.  
  320. BOOL
  321. WINAPI
  322. ImpersonateDdeClientWindow(
  323.     HWND hWndClient,
  324.     HWND hWndServer);
  325.  
  326. /*
  327.  * DDE message packing APIs
  328.  */
  329. LONG APIENTRY PackDDElParam(UINT msg, UINT uiLo, UINT uiHi);
  330. BOOL APIENTRY UnpackDDElParam(UINT msg, LONG lParam, PUINT puiLo, PUINT puiHi);
  331. BOOL APIENTRY FreeDDElParam(UINT msg, LONG lParam);
  332. LONG APIENTRY ReuseDDElParam(LONG lParam, UINT msgIn, UINT msgOut, UINT uiLo, UINT uiHi);
  333.  
  334. #ifdef __cplusplus
  335. }
  336. #endif
  337.  
  338. #endif // _DDEHEADER_INCLUDED_
  339.  
  340.  
  341. #endif  /* __FLAT__ */
  342.