home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 May / PCFMay2001.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / sadapi.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  5.7 KB  |  200 lines

  1. /*
  2.  *    sadapi.h
  3.  *
  4.  *    Copyright (c) Microsoft Corp. 1986-1996. All Rights Reserved.
  5.  *
  6.  *    Definition of the public RPC APIs from the SAD Exchange service
  7.  *
  8.  */
  9.  
  10.  
  11. #ifndef _SADLIB_H_
  12. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  13. #define _SADLIB_H_
  14.  
  15. #include <rpcpub.h>
  16.  
  17. #ifdef __cplusplus
  18. extern "C"
  19. {
  20. #endif
  21.  
  22.  
  23. /* 
  24.  * Return codes for all functions except SAD_EcGetProxies() and SAD_EcGetProxiesBI().
  25.  * In addition to this list are all normal NT error codes...
  26.  */
  27. typedef enum _SC_RETURN_VALUES
  28. {
  29.     SC_OK = 0,                    // no error
  30.     SC_Error = 49001,            // general error
  31.     SC_BPActive,                // bulk proxy generation is currently running
  32.     SC_BPInactive,                // bulk proxy generation is not currently running
  33.     SC_BPShutdownPending,        // a shutdown in bulk proxy generation is in progress
  34.     SC_BPSiteAddressMismatch,    // a Site Address Mismatch between rgszOldSiteAddress
  35.                                 //   and rgszNewSiteAddress lists in ScBulkUpdateMultiProxy
  36. } SC_RETURN_VALUES;
  37.  
  38.  
  39. #define cchMaxServer        (MAX_COMPUTERNAME_LENGTH + 1)
  40.  
  41. typedef    struct _RPCBINDINFO
  42. {
  43.     handle_t         h;
  44.     WCHAR            wszServer[cchMaxServer];
  45.     RPC_IF_HANDLE    hClientIfHandle;
  46. } RPCBINDINFO, *PRPCBINDINFO;
  47.  
  48.  
  49. //    Utility entry points
  50. RPC_SC WINAPI SAD_ScBindA(PRPCBINDINFO pBI, LPSTR szServer);
  51. RPC_SC WINAPI SAD_ScBindW(PRPCBINDINFO pBI, LPWSTR wszServer);
  52. void WINAPI SAD_Unbind(PRPCBINDINFO pBI);
  53.  
  54. #ifdef UNICODE
  55. #define    SAD_ScBind        SAD_ScBindW
  56. #else
  57. #define    SAD_ScBind        SAD_ScBindA
  58. #endif
  59.  
  60.  
  61.  
  62. // Message Tracking group
  63. RPC_SC WINAPI SAD_ScSaveGatewayTrackingData(PRPCBINDINFO pBI,
  64.                                             RPC_GATEWAY_TRACK_INFORMATION *    pgti,
  65.                                             INT    cszRecipients,
  66.                                             LPWSTR    rgwszRecipients[]);
  67.  
  68. // for Microsoft Internal Use ONLY
  69. RPC_SC WINAPI SAD_ScSaveTrackingData(PRPCBINDINFO pBI, INT cb, BYTE pb[], DWORD dwFlags);
  70.  
  71.  
  72. // for Gateways - cause the routing table to be recalculated
  73. RPC_SC WINAPI SAD_ScRunRIDA(LPSTR szServer);
  74. RPC_SC WINAPI SAD_ScRunRIDW(LPWSTR wszServer);
  75. RPC_SC WINAPI SAD_ScRunRIDExA(LPSTR szServer, RPC_BOOL fProxySpace, RPC_BOOL fGwart);
  76. RPC_SC WINAPI SAD_ScRunRIDExW(LPWSTR wszServer, RPC_BOOL fProxySpace, RPC_BOOL fGwart);
  77.  
  78. #ifdef UNICODE
  79. #define    SAD_ScRunRID        SAD_ScRunRIDW
  80. #define    SAD_ScRunRIDEx        SAD_ScRunRIDExW
  81. #else
  82. #define    SAD_ScRunRID        SAD_ScRunRIDA
  83. #define    SAD_ScRunRIDEx        SAD_ScRunRIDExA
  84. #endif
  85.  
  86.  
  87.  
  88. //    Proxy Entry points
  89.  
  90. RPC_EC WINAPI SAD_EcGetProxies(LPWSTR wszServer, PPROXYINFO pProxyInfo, PPROXYLIST pProxyList);
  91. RPC_EC WINAPI SAD_EcGetProxiesBI(PRPCBINDINFO pBI, PPROXYINFO pProxyInfo, PPROXYLIST pProxyList);
  92. void   WINAPI SAD_FreeProxyListNode(PPROXYNODE pnode);
  93. RPC_SC WINAPI SAD_ScIsProxyUniqueA(LPSTR szServer,
  94.         LPSTR szProxy, RPC_BOOL * pfUnique, LPSTR * pszExisting);
  95. RPC_SC WINAPI SAD_ScIsProxyUniqueW(LPWSTR wszServer,
  96.         LPWSTR szProxy, RPC_BOOL * pfUnique, LPWSTR * pszExisting);
  97.  
  98. // dwOptions values for SAD_ScBulkCreateProxy() and SAD_ScBulkCreateMultiProxy()
  99. #define        BPTAdd            1
  100. #define        BPTRemove        2
  101. #define        BPTUpdate        3
  102.  
  103. RPC_SC WINAPI SAD_ScBulkCreateProxyA(LPSTR szServer, LPSTR szHeader, DWORD dwOptions);
  104. RPC_SC WINAPI SAD_ScBulkCreateProxyW(LPWSTR wszServer, LPWSTR wszHeader, DWORD dwOptions);
  105. RPC_SC WINAPI SAD_ScBulkCreateMultiProxyA(LPSTR szServer,
  106.                                           INT cszHeader,
  107.                                           LPSTR rgszHeader[],
  108.                                           DWORD dwOptions);
  109. RPC_SC WINAPI SAD_ScBulkCreateMultiProxyW(LPWSTR wszServer,
  110.                                           INT cwszHeader,
  111.                                           LPWSTR rgwszHeader[],
  112.                                           DWORD dwOptions);
  113. RPC_SC WINAPI SAD_ScBulkUpdateMultiProxy(LPWSTR wszServer,
  114.                                          INT cwszSiteAddress,
  115.                                          LPWSTR rgwszOldSiteAddress[],
  116.                                          LPWSTR rgwszNewSiteAddress[],
  117.                                          RPC_BOOL fSaveSiteAddress);
  118.  
  119.  
  120. RPC_SC WINAPI SAD_ScGetBulkProxyStatusA(LPSTR szServer,
  121.                                         RPC_SYSTEMTIME * pstTimeStart,
  122.                                         DWORD * pdwTimeStart,
  123.                                         DWORD * pdwTimeCur,
  124.                                         INT * piRecipients,
  125.                                         INT * pcRecipients);
  126. RPC_SC WINAPI SAD_ScGetBulkProxyStatusW(LPWSTR wszServer,
  127.                                         RPC_SYSTEMTIME * pstTimeStart,
  128.                                         DWORD * pdwTimeStart,
  129.                                         DWORD * pdwTimeCur,
  130.                                         INT * piRecipients,
  131.                                         INT * pcRecipients);
  132. RPC_SC WINAPI SAD_ScBulkProxyHaltA(LPSTR szServer, RPC_BOOL fWaitForShutdown);
  133. RPC_SC WINAPI SAD_ScBulkProxyHaltW(LPWSTR wszServer, RPC_BOOL fWaitForShutdown);
  134.  
  135. #ifdef UNICODE
  136. #define    SAD_ScIsProxyUnique            SAD_ScIsProxyUniqueW
  137. #define SAD_ScBulkCreateProxy        SAD_ScBulkCreateProxyW
  138. #define SAD_ScBulkCreateMultiProxy    SAD_ScBulkCreateMultiProxyW
  139. #define    SAD_ScGetBulkProxyStatus    SAD_ScGetBulkProxyStatusW
  140. #define    SAD_ScBulkProxyHalt            SAD_ScBulkProxyHaltW
  141. #else
  142. #define    SAD_ScIsProxyUnique            SAD_ScIsProxyUniqueA
  143. #define SAD_ScBulkCreateProxy        SAD_ScBulkCreateProxyA
  144. #define SAD_ScBulkCreateMultiProxy    SAD_ScBulkCreateMultiProxyA
  145. #define    SAD_ScGetBulkProxyStatus    SAD_ScGetBulkProxyStatusA
  146. #define    SAD_ScBulkProxyHalt            SAD_ScBulkProxyHaltA
  147. #endif
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154. //    Backup entry point    (available only in UNICODE!)
  155.  
  156. RPC_SC WINAPI    SAD_ScGetBackupListNodeW(LPWSTR wszServer, BackupListNode ** ppnode);
  157. void WINAPI        SAD_FreeBackupListNode(BackupListNode * pnode);
  158.  
  159.  
  160. // Run DRA Check calling parameters (dwCheck)
  161. #define INTRASITE_CHECK 0
  162. #define INTERSITE_CHECK 1
  163.  
  164. RPC_SC WINAPI    SAD_ScRunDRACheck(LPWSTR wszServer, RPC_DWORD dwCheck);
  165.  
  166.  
  167.  
  168. // These few lines (or equivalent) need to be supplied by the application that links
  169. // with SADAPI.LIB.
  170. #ifdef _SAMPLE_CODE
  171. void __RPC_FAR * __RPC_API midl_user_allocate(size_t cb)
  172. {
  173.     void *    pv;
  174.  
  175.     pv = GlobalAlloc(GMEM_FIXED, cb);
  176.     if (!pv)
  177.         RpcRaiseException(RPC_S_OUT_OF_MEMORY);
  178.  
  179.     return pv;
  180. }
  181.  
  182. void __RPC_API midl_user_free(void __RPC_FAR * pv)
  183. {
  184.     GlobalFree(pv);
  185. }
  186. #endif
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194. #ifdef __cplusplus
  195. }
  196. #endif
  197.  
  198. #pragma option pop /*P_O_Pop*/
  199. #endif        // #ifndef _SADLIB_H_
  200.