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