home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / nddeapi.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  15KB  |  407 lines

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