home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c083 / 19.ddi / GENINC32.PAK / NDDEAPI.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-02  |  15.4 KB  |  444 lines

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