home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / NDDEAPI.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  14.4 KB  |  403 lines

  1. /************************************************************************
  2. * Copyright (c) Wonderware Software Development Corp. 1991-1993.        *
  3. *               All Rights Reserved.                                    *
  4. * Copyright (c) Microsoft Inc. 1995-1997                                *
  5. *               All Rights Reserved.                                    *
  6. ************************************************************************/
  7.  
  8. #ifndef          _INC_NDDEAPI
  9. #pragma option push -b -a8 -pc -A- /*P_O_Push_S*/
  10. #define          _INC_NDDEAPI
  11.  
  12. #include <pshpack1.h>   /* Assume byte packing throughout */
  13.  
  14. #ifdef __cplusplus
  15. extern "C" {            /* Assume C declarations for C++ */
  16. #endif    /* __cplusplus */
  17.  
  18. #ifndef CNLEN           /* If not included with netapi header */
  19. #define CNLEN           15                  /* Computer name length     */
  20. #define UNCLEN          (CNLEN+2)           /* UNC computer name length */
  21. #endif /* CNLEN */
  22.  
  23. // the choice of this char affects legal share,topic, etc. names
  24. #define SEP_CHAR    ','
  25. #define BAR_CHAR    "|"
  26. #define SEP_WCHAR   L','
  27. #define BAR_WCHAR   L"|"
  28.  
  29. /* API error codes  */
  30. #define NDDE_NO_ERROR                   0
  31. #define NDDE_ACCESS_DENIED              1
  32. #define NDDE_BUF_TOO_SMALL              2
  33. #define NDDE_ERROR_MORE_DATA            3
  34. #define NDDE_INVALID_SERVER             4
  35. #define NDDE_INVALID_SHARE              5
  36. #define NDDE_INVALID_PARAMETER          6
  37. #define NDDE_INVALID_LEVEL              7
  38. #define NDDE_INVALID_PASSWORD           8
  39. #define NDDE_INVALID_ITEMNAME           9
  40. #define NDDE_INVALID_TOPIC             10
  41. #define NDDE_INTERNAL_ERROR            11
  42. #define NDDE_OUT_OF_MEMORY             12
  43. #define NDDE_INVALID_APPNAME           13
  44. #define NDDE_NOT_IMPLEMENTED           14
  45. #define NDDE_SHARE_ALREADY_EXIST       15
  46. #define NDDE_SHARE_NOT_EXIST           16
  47. #define NDDE_INVALID_FILENAME          17
  48. #define NDDE_NOT_RUNNING               18
  49. #define NDDE_INVALID_WINDOW            19
  50. #define NDDE_INVALID_SESSION           20
  51. #define NDDE_INVALID_ITEM_LIST         21
  52. #define NDDE_SHARE_DATA_CORRUPTED      22
  53. #define NDDE_REGISTRY_ERROR            23
  54. #define NDDE_CANT_ACCESS_SERVER        24
  55. #define NDDE_INVALID_SPECIAL_COMMAND   25
  56. #define NDDE_INVALID_SECURITY_DESC     26
  57. #define NDDE_TRUST_SHARE_FAIL          27
  58.  
  59. /* string size constants */
  60. #define MAX_NDDESHARENAME       256
  61. #define MAX_DOMAINNAME          15
  62. #define MAX_USERNAME            15
  63. #define MAX_APPNAME             255
  64. #define MAX_TOPICNAME           255
  65. #define MAX_ITEMNAME            255
  66.  
  67. /* connectFlags bits for ndde service affix */
  68. #define NDDEF_NOPASSWORDPROMPT  0x0001
  69. #define NDDEF_NOCACHELOOKUP     0x0002
  70. #define NDDEF_STRIP_NDDE        0x0004
  71.  
  72.  
  73. /* NDDESHAREINFO - contains information about a NDDE share */
  74.  
  75. struct NDdeShareInfo_tag {
  76.     LONG                    lRevision;
  77.     LPTSTR                  lpszShareName;
  78.     LONG                    lShareType;
  79.     LPTSTR                  lpszAppTopicList;
  80.     LONG                    fSharedFlag;
  81.     LONG                    fService;
  82.     LONG                    fStartAppFlag;
  83.     LONG                    nCmdShow;
  84.     LONG                    qModifyId[2];
  85.     LONG                    cNumItems;
  86.     LPTSTR                  lpszItemList;
  87. };
  88. typedef struct NDdeShareInfo_tag   NDDESHAREINFO;
  89. typedef struct NDdeShareInfo_tag * PNDDESHAREINFO;
  90.  
  91. /*  Share Types */
  92. #define SHARE_TYPE_OLD      0x01                // Excel|sheet1.xls
  93. #define SHARE_TYPE_NEW      0x02                // ExcelWorksheet|sheet1.xls
  94. #define SHARE_TYPE_STATIC   0x04                // ClipSrv|SalesData
  95.  
  96. /*
  97.     Add new share
  98. */
  99. UINT WINAPI
  100. NDdeShareAddA (
  101.     LPSTR                   lpszServer, // server to execute on ( must be NULL )
  102.     UINT                    nLevel,     // info level must be 2
  103.     PSECURITY_DESCRIPTOR    pSD,        // initial security descriptor (optional)
  104.     LPBYTE                  lpBuffer,   // contains (NDDESHAREINFO) + data
  105.     DWORD                   cBufSize    // sizeof supplied buffer
  106. );
  107.  
  108. UINT WINAPI
  109. NDdeShareAddW (
  110.     LPWSTR                  lpszServer, // server to execute on ( must be NULL )
  111.     UINT                    nLevel,     // info level must be 2
  112.     PSECURITY_DESCRIPTOR    pSD,        // initial security descriptor (optional)
  113.     LPBYTE                  lpBuffer,   // contains (NDDESHAREINFO) + data
  114.     DWORD                   cBufSize    // sizeof supplied buffer
  115. );
  116.  
  117. /*
  118.     Delete a share
  119. */
  120. UINT WINAPI
  121. NDdeShareDelA (
  122.     LPSTR   lpszServer,     // server to execute on ( must be NULL )
  123.     LPSTR   lpszShareName,  // name of share to delete
  124.     UINT    wReserved       // reserved for force level (?) 0 for now
  125. );
  126.  
  127. UINT WINAPI
  128. NDdeShareDelW (
  129.     LPWSTR  lpszServer,     // server to execute on ( must be NULL )
  130.     LPWSTR  lpszShareName,  // name of share to delete
  131.     UINT    wReserved       // reserved for force level (?) 0 for now
  132. );
  133.  
  134. /*
  135.     Get Share Security Descriptor
  136. */
  137.  
  138. UINT WINAPI
  139. NDdeGetShareSecurityA(
  140.     LPSTR                   lpszServer,     // server to execute on ( must be NULL )
  141.     LPSTR                   lpszShareName,  // name of share to delete
  142.     SECURITY_INFORMATION    si,             // requested information
  143.     PSECURITY_DESCRIPTOR    pSD,            // address of security descriptor
  144.     DWORD                   cbSD,           // size of buffer for security descriptor
  145.     LPDWORD                 lpcbsdRequired  // address of required size of buffer
  146. );
  147.  
  148. UINT WINAPI
  149. NDdeGetShareSecurityW(
  150.     LPWSTR                  lpszServer,     // server to execute on ( must be NULL )
  151.     LPWSTR                  lpszShareName,  // name of share to delete
  152.     SECURITY_INFORMATION    si,             // requested information
  153.     PSECURITY_DESCRIPTOR    pSD,            // address of security descriptor
  154.     DWORD                   cbSD,           // size of buffer for security descriptor
  155.     LPDWORD                 lpcbsdRequired  // address of required size of buffer
  156. );
  157.  
  158. /*
  159.     Set Share Security Descriptor
  160. */
  161.  
  162. UINT WINAPI
  163. NDdeSetShareSecurityA(
  164.     LPSTR                   lpszServer,     // server to execute on ( must be NULL )
  165.     LPSTR                   lpszShareName,  // name of share to delete
  166.     SECURITY_INFORMATION    si,             // type of information to set
  167.     PSECURITY_DESCRIPTOR    pSD             // address of security descriptor
  168. );
  169.  
  170. UINT WINAPI
  171. NDdeSetShareSecurityW(
  172.     LPWSTR                  lpszServer,     // server to execute on ( must be NULL )
  173.     LPWSTR                  lpszShareName,  // name of share to delete
  174.     SECURITY_INFORMATION    si,             // type of information to set
  175.     PSECURITY_DESCRIPTOR    pSD             // address of security descriptor
  176. );
  177.  
  178. /*
  179.     Enumerate shares
  180. */
  181. UINT WINAPI
  182. NDdeShareEnumA (
  183.     LPSTR   lpszServer,         // server to execute on ( NULL for local )
  184.     UINT    nLevel,             //  0 for null separated 00 terminated list
  185.     LPBYTE  lpBuffer,           // pointer to buffer
  186.     DWORD   cBufSize,           // size of buffer
  187.     LPDWORD lpnEntriesRead,     // number of names returned
  188.     LPDWORD lpcbTotalAvailable  // number of bytes available
  189. );
  190.  
  191. UINT WINAPI
  192. NDdeShareEnumW (
  193.     LPWSTR  lpszServer,         // server to execute on ( NULL for local )
  194.     UINT    nLevel,             //  0 for null separated 00 terminated list
  195.     LPBYTE  lpBuffer,           // pointer to buffer
  196.     DWORD   cBufSize,           // size of buffer
  197.     LPDWORD lpnEntriesRead,     // number of names returned
  198.     LPDWORD lpcbTotalAvailable  // number of bytes available
  199. );
  200.  
  201. /*
  202.     Get information on a share
  203. */
  204. UINT WINAPI
  205. NDdeShareGetInfoA (
  206.     LPSTR   lpszServer,         // server to execute on ( must be NULL )
  207.     LPSTR   lpszShareName,      // name of share
  208.     UINT    nLevel,             // info level must be 2
  209.     LPBYTE  lpBuffer,           // gets struct containing (NDDESHAREINFO) + data
  210.     DWORD   cBufSize,           // sizeof buffer
  211.     LPDWORD lpnTotalAvailable,  // number of bytes available
  212.     LPWORD  lpnItems            // item mask for partial getinfo (must be 0)
  213. );
  214.  
  215. UINT WINAPI
  216. NDdeShareGetInfoW (
  217.     LPWSTR  lpszServer,         // server to execute on ( must be NULL )
  218.     LPWSTR  lpszShareName,      // name of share
  219.     UINT    nLevel,             // info level must be 2
  220.     LPBYTE  lpBuffer,           // gets struct containing (NDDESHAREINFO) + data
  221.     DWORD   cBufSize,           // sizeof buffer
  222.     LPDWORD lpnTotalAvailable,  // number of bytes available
  223.     LPWORD  lpnItems            // item mask for partial getinfo (must be 0)
  224. );
  225.  
  226. /*
  227.     Modify DDE share data
  228. */
  229. UINT WINAPI
  230. NDdeShareSetInfoA (
  231.     LPSTR   lpszServer,         // server to execute on ( must be NULL )
  232.     LPSTR   lpszShareName,      // name of share
  233.     UINT    nLevel,             // info level must be 2
  234.     LPBYTE  lpBuffer,           // points to struct with (NDDESHAREINFO) + data
  235.     DWORD   cBufSize,           // sizeof buffer
  236.     WORD    sParmNum            // Parameter index ( must be 0 - entire )
  237. );
  238.  
  239. UINT WINAPI
  240. NDdeShareSetInfoW (
  241.     LPWSTR  lpszServer,         // server to execute on ( must be NULL )
  242.     LPWSTR  lpszShareName,      // name of share
  243.     UINT    nLevel,             // info level must be 2
  244.     LPBYTE  lpBuffer,           // points to struct with (NDDESHAREINFO) + data
  245.     DWORD   cBufSize,           // sizeof buffer
  246.     WORD    sParmNum            // Parameter index ( must be 0 - entire )
  247. );
  248.  
  249. /*
  250.     Set/Create a trusted share
  251. */
  252.  
  253. UINT WINAPI
  254. NDdeSetTrustedShareA (
  255.     LPSTR   lpszServer,         // server to execute on ( must be NULL )
  256.     LPSTR   lpszShareName,      // name of share to delete
  257.     DWORD   dwTrustOptions      // trust options to apply
  258. );
  259.  
  260. UINT WINAPI
  261. NDdeSetTrustedShareW (
  262.     LPWSTR  lpszServer,         // server to execute on ( must be NULL )
  263.     LPWSTR  lpszShareName,      // name of share to delete
  264.     DWORD   dwTrustOptions      // trust options to apply
  265. );
  266.  
  267.                                             /*  Trusted share options       */
  268. #define NDDE_TRUST_SHARE_START  0x80000000L     // Start App Allowed
  269. #define NDDE_TRUST_SHARE_INIT   0x40000000L     // Init Conv Allowed
  270. #define NDDE_TRUST_SHARE_DEL    0x20000000L     // Delete Trusted Share (on set)
  271. #define NDDE_TRUST_CMD_SHOW     0x10000000L     // Use supplied cmd show
  272. #define NDDE_CMD_SHOW_MASK      0x0000FFFFL     // Command Show mask
  273.  
  274. /*
  275.     Get a trusted share options
  276. */
  277.  
  278. UINT WINAPI
  279. NDdeGetTrustedShareA (
  280.     LPSTR       lpszServer,         // server to execute on ( must be NULL )
  281.     LPSTR       lpszShareName,      // name of share to query
  282.     LPDWORD     lpdwTrustOptions,   // trust options in effect
  283.     LPDWORD     lpdwShareModId0,    // first word of share mod id
  284.     LPDWORD     lpdwShareModId1     // second word of share mod id
  285. );
  286.  
  287. UINT WINAPI
  288. NDdeGetTrustedShareW (
  289.     LPWSTR      lpszServer,         // server to execute on ( must be NULL )
  290.     LPWSTR      lpszShareName,      // name of share to query
  291.     LPDWORD     lpdwTrustOptions,   // trust options in effect
  292.     LPDWORD     lpdwShareModId0,    // first word of share mod id
  293.     LPDWORD     lpdwShareModId1     // second word of share mod id
  294. );
  295.  
  296.  
  297. /*
  298.     Enumerate trusted shares
  299. */
  300. UINT WINAPI
  301. NDdeTrustedShareEnumA (
  302.     LPSTR   lpszServer,         // server to execute on ( NULL for local )
  303.     UINT    nLevel,             //  0 for null separated 00 terminated list
  304.     LPBYTE  lpBuffer,           // pointer to buffer
  305.     DWORD   cBufSize,           // size of buffer
  306.     LPDWORD lpnEntriesRead,     // number of names returned
  307.     LPDWORD lpcbTotalAvailable  // number of bytes available
  308. );
  309.  
  310. UINT WINAPI
  311. NDdeTrustedShareEnumW (
  312.     LPWSTR  lpszServer,         // server to execute on ( NULL for local )
  313.     UINT    nLevel,             //  0 for null separated 00 terminated list
  314.     LPBYTE  lpBuffer,           // pointer to buffer
  315.     DWORD   cBufSize,           // size of buffer
  316.     LPDWORD lpnEntriesRead,     // number of names returned
  317.     LPDWORD lpcbTotalAvailable  // number of bytes available
  318. );
  319.  
  320. /*
  321.     Convert error code to string value
  322. */
  323. UINT WINAPI
  324. NDdeGetErrorStringA (
  325.     UINT    uErrorCode,         // Error code to get string for
  326.     LPSTR   lpszErrorString,    // buffer to hold error string
  327.     DWORD   cBufSize            // sizeof buffer
  328. );
  329.  
  330. UINT WINAPI
  331. NDdeGetErrorStringW (
  332.     UINT    uErrorCode,         // Error code to get string for
  333.     LPWSTR  lpszErrorString,    // buffer to hold error string
  334.     DWORD   cBufSize            // sizeof buffer
  335. );
  336.  
  337. /*
  338.     Validate share name format
  339. */
  340. BOOL WINAPI
  341. NDdeIsValidShareNameA (
  342.     LPSTR shareName
  343. );
  344.  
  345. BOOL WINAPI
  346. NDdeIsValidShareNameW (
  347.     LPWSTR shareName
  348. );
  349.  
  350. /*
  351.     Validate application/topic list format
  352. */
  353. BOOL WINAPI
  354. NDdeIsValidAppTopicListA (
  355.     LPSTR targetTopic
  356. );
  357.  
  358. BOOL WINAPI
  359. NDdeIsValidAppTopicListW (
  360.     LPWSTR targetTopic
  361. );
  362.  
  363. #ifdef UNICODE
  364. #define NDdeShareAdd            NDdeShareAddW
  365. #define NDdeShareDel            NDdeShareDelW
  366. #define NDdeSetShareSecurity    NDdeSetShareSecurityW
  367. #define NDdeGetShareSecurity    NDdeGetShareSecurityW
  368. #define NDdeShareEnum           NDdeShareEnumW
  369. #define NDdeShareGetInfo        NDdeShareGetInfoW
  370. #define NDdeShareSetInfo        NDdeShareSetInfoW
  371. #define NDdeGetErrorString      NDdeGetErrorStringW
  372. #define NDdeIsValidShareName    NDdeIsValidShareNameW
  373. #define NDdeIsValidAppTopicList NDdeIsValidAppTopicListW
  374. #define NDdeSetTrustedShare     NDdeSetTrustedShareW
  375. #define NDdeGetTrustedShare     NDdeGetTrustedShareW
  376. #define NDdeTrustedShareEnum    NDdeTrustedShareEnumW
  377. #else
  378. #define NDdeShareAdd            NDdeShareAddA
  379. #define NDdeShareDel            NDdeShareDelA
  380. #define NDdeSetShareSecurity    NDdeSetShareSecurityA
  381. #define NDdeGetShareSecurity    NDdeGetShareSecurityA
  382. #define NDdeShareEnum           NDdeShareEnumA
  383. #define NDdeShareGetInfo        NDdeShareGetInfoA
  384. #define NDdeShareSetInfo        NDdeShareSetInfoA
  385. #define NDdeGetErrorString      NDdeGetErrorStringA
  386. #define NDdeIsValidShareName    NDdeIsValidShareNameA
  387. #define NDdeIsValidAppTopicList NDdeIsValidAppTopicListA
  388. #define NDdeSetTrustedShare     NDdeSetTrustedShareA
  389. #define NDdeGetTrustedShare     NDdeGetTrustedShareA
  390. #define NDdeTrustedShareEnum    NDdeTrustedShareEnumA
  391. #endif
  392.  
  393. #ifdef __cplusplus
  394. }
  395. #endif    /* __cplusplus */
  396.  
  397. #include <poppack.h>
  398.  
  399. #pragma option pop /*P_O_Pop*/
  400. #endif  /* _INC_NDDEAPI */
  401.  
  402.  
  403.