Rend.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:15k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. cpp_quote("/* Copyright (c) Microsoft Corporation. All rights reserved. */")
  4. // rend.idl : IDL source for rend.dll
  5. //
  6. // This file will be processed by the MIDL tool to
  7. // produce the type library (rend.tlb) and marshalling code.
  8. import "oaidl.idl";
  9. import "tapi3if.idl";
  10. // Conference and user object Interfaces
  11. const DISPID  IDISPDIROBJECT            = 0x00010000;
  12. const DISPID  IDISPDIROBJCONFERENCE     = 0x00020000;
  13. const DISPID  IDISPDIROBJUSER           = 0x00030000;
  14. // Directory object interfaces
  15. const DISPID  IDISPDIRECTORY            = 0x00010000;
  16. const DISPID  IDISPILSCONFIG            = 0x00020000;
  17. typedef enum DIRECTORY_TYPE
  18. {
  19.     DT_NTDS   = 1,
  20.     DT_ILS    = 2
  21. } DIRECTORY_TYPE;
  22. typedef enum DIRECTORY_OBJECT_TYPE
  23. {
  24.     OT_CONFERENCE  = 1,
  25.     OT_USER        = 2
  26. } DIRECTORY_OBJECT_TYPE;
  27. typedef enum RND_ADVERTISING_SCOPE
  28. {
  29.     RAS_LOCAL   = 1,
  30.     RAS_SITE    = 2,
  31.     RAS_REGION  = 3,
  32.     RAS_WORLD   = 4
  33. } RND_ADVERTISING_SCOPE;
  34. [
  35.     object,
  36.     uuid(F1029E5D-CB5B-11D0-8D59-00C04FD91AC0),
  37.     dual,
  38.     helpstring("Interface for conference announcements."),
  39.     pointer_default(unique)
  40. ]
  41. interface ITDirectoryObjectConference : IDispatch
  42. {
  43.     [propget, id(IDISPDIROBJCONFERENCE | 1), helpstring("The protocol used in describing the conference.")]
  44.     HRESULT Protocol(
  45.         [out, retval] BSTR *ppProtocol
  46.         );
  47.     [propget, id(IDISPDIROBJCONFERENCE | 2), helpstring("The originator of the conference.")]
  48.     HRESULT Originator(
  49.         [out, retval] BSTR *ppOriginator
  50.         );
  51.     [propput, id(IDISPDIROBJCONFERENCE | 2), helpstring("The originator of the conference.")]
  52.     HRESULT Originator(
  53.         [in] BSTR pOriginator
  54.         );
  55.     [propget, id(IDISPDIROBJCONFERENCE | 3), helpstring("The scope of the conference.")]
  56.     HRESULT AdvertisingScope(
  57.         [out, retval] RND_ADVERTISING_SCOPE *pAdvertisingScope
  58.         );
  59.     [propput, id(IDISPDIROBJCONFERENCE | 3), helpstring("The scope of the conference.")]
  60.     HRESULT AdvertisingScope(
  61.         [in] RND_ADVERTISING_SCOPE AdvertisingScope
  62.         );
  63.     [propget, id(IDISPDIROBJCONFERENCE | 4), helpstring("The Url for the conference.")]
  64.     HRESULT Url(
  65.         [out, retval] BSTR *ppUrl
  66.         );
  67.     [propput, id(IDISPDIROBJCONFERENCE | 4), helpstring("The Url for the conference.")]
  68.     HRESULT Url(
  69.         [in] BSTR pUrl
  70.         );
  71.     [propget, id(IDISPDIROBJCONFERENCE | 5), helpstring("The description of the conference.")]
  72.     HRESULT Description(
  73.         [out, retval] BSTR *ppDescription
  74.         );
  75.     [propput, id(IDISPDIROBJCONFERENCE | 5), helpstring("The description of the conference.")]
  76.     HRESULT Description(
  77.         [in] BSTR pDescription
  78.         );
  79.     [propget, id(IDISPDIROBJCONFERENCE | 6), helpstring("If the conference is encrypted.")]
  80.     HRESULT IsEncrypted(
  81.         [out, retval] VARIANT_BOOL *pfEncrypted
  82.         );
  83.     [propput, id(IDISPDIROBJCONFERENCE | 6), helpstring("If the conference is encrypted.")]
  84.     HRESULT IsEncrypted(
  85.         [in] VARIANT_BOOL fEncrypted
  86.         );
  87.     [propget, id(IDISPDIROBJCONFERENCE | 7), helpstring("The start time of the conference.")]
  88.     HRESULT StartTime(
  89.         [out, retval] DATE *pDate
  90.         );
  91.     [propput, id(IDISPDIROBJCONFERENCE | 7), helpstring("The start time of the conference.")]
  92.     HRESULT StartTime(
  93.         [in] DATE   Date
  94.         );
  95.     [propget, id(IDISPDIROBJCONFERENCE | 8), helpstring("The stop time of the conference.")]
  96.     HRESULT StopTime(
  97.         [out, retval] DATE *pDate
  98.         );
  99.     [propput, id(IDISPDIROBJCONFERENCE | 8), helpstring("The stop time of the conference.")]
  100.     HRESULT StopTime(
  101.         [in] DATE   Date
  102.         );
  103. };
  104. [
  105.     object,
  106.     uuid(34621D6F-6CFF-11d1-AFF7-00C04FC31FEE),
  107.     dual,
  108.     helpstring("Interface for user object."),
  109.     pointer_default(unique)
  110. ]
  111. interface ITDirectoryObjectUser : IDispatch
  112. {
  113.     [propget, id(IDISPDIROBJUSER | 1), helpstring("The primary IP phone attribute.")]
  114.     HRESULT IPPhonePrimary(
  115.         [out, retval] BSTR *ppName
  116.         );
  117.     [propput, id(IDISPDIROBJUSER | 1), helpstring("The primary IP phone attribute.")]
  118.     HRESULT IPPhonePrimary(
  119.         [in] BSTR pName
  120.         );
  121. };
  122. [
  123.     uuid(34621D70-6CFF-11d1-AFF7-00C04FC31FEE),
  124.     helpstring("IEnumDialableAddresses interface"),
  125.     hidden,
  126.     restricted,
  127.     pointer_default(unique)
  128. ]
  129. interface IEnumDialableAddrs : IUnknown
  130. {
  131.     HRESULT Next(
  132.         [in] ULONG celt,
  133.         [out, size_is(celt)] BSTR * ppElements,
  134.         [in,out,ptr] ULONG * pcFetched
  135.         );
  136.     HRESULT Reset( void );
  137.     HRESULT Skip (
  138.         [in] ULONG celt
  139.         );
  140.     HRESULT Clone (
  141.         [out, retval] IEnumDialableAddrs ** ppEnum
  142.         );
  143. };
  144. [
  145.     object,
  146.     uuid(34621D6E-6CFF-11d1-AFF7-00C04FC31FEE),
  147.     dual,
  148.     helpstring("Interface for an object in the directory."),
  149.     pointer_default(unique)
  150. ]
  151. interface ITDirectoryObject : IDispatch
  152. {
  153.     [propget, id(IDISPDIROBJECT | 1), helpstring("The type of this object.")]
  154.     HRESULT ObjectType(
  155.         [out, retval] DIRECTORY_OBJECT_TYPE *   pObjectType
  156.         );
  157.     [propget, id(IDISPDIROBJECT | 2), helpstring("The name of this object.")]
  158.     HRESULT Name(
  159.         [out, retval] BSTR *ppName
  160.         );
  161.     [propput, id(IDISPDIROBJECT | 2), helpstring("The name of this object.")]
  162.     HRESULT Name(
  163.         [in] BSTR pName
  164.         );
  165.     [propget, id(IDISPDIROBJECT | 3), helpstring("The addresses of the object that can be dialed.")]
  166.     HRESULT DialableAddrs(
  167.         [in]            long       dwAddressType,   //defined in tapi.h
  168.         [out, retval]   VARIANT *   pVariant
  169.         );
  170.     [id(IDISPDIROBJECT | 4), hidden, restricted, helpstring("method EnumerateDialableAddrs")]
  171.     HRESULT EnumerateDialableAddrs(
  172.         [in]    DWORD                   dwAddressType, //defined in tapi.h
  173.         [out]   IEnumDialableAddrs **   ppEnumDialableAddrs
  174.         );
  175.     [propget, id(IDISPDIROBJECT | 5), helpstring("The security descriptor.")]
  176.     HRESULT SecurityDescriptor(
  177.         [out, retval] IDispatch ** ppSecDes
  178.         );
  179.     [propput, id(IDISPDIROBJECT | 5), helpstring("The security descriptor.")]
  180.     HRESULT SecurityDescriptor(
  181.         [in] IDispatch * pSecDes
  182.         );
  183. };
  184. [
  185.     object,
  186.     uuid(06C9B64A-306D-11D1-9774-00C04FD91AC0),
  187.     helpstring("IEnumDirectoryObject interface"),
  188.     hidden,
  189.     restricted,
  190.     pointer_default(unique)
  191. ]
  192. interface IEnumDirectoryObject : IUnknown
  193. {
  194.     HRESULT Next(
  195.         [in]  ULONG celt,
  196.         [out, size_is(celt)] ITDirectoryObject **pVal,
  197.         [in, out, ptr] ULONG * pcFetched
  198.         );
  199.     HRESULT Reset( void );
  200.     HRESULT Skip (
  201.         [in] ULONG celt
  202.         );
  203.     HRESULT Clone (
  204.         [out, retval] IEnumDirectoryObject ** ppEnum
  205.         );
  206. };
  207. [
  208.     object,
  209.     public,
  210.     uuid(34621D72-6CFF-11d1-AFF7-00C04FC31FEE),
  211.     dual,
  212.     helpstring("Interface to configure ILS server.")
  213. ]
  214. interface ITILSConfig : IDispatch
  215. {
  216.     [propget, id(IDISPILSCONFIG | 1), helpstring("The port the ILS server is listening on.")]
  217.     HRESULT Port(
  218.         [out, retval] long *pPort
  219.         );
  220.     [propput, id(IDISPILSCONFIG | 1), helpstring("The port the ILS server is listening on.")]
  221.     HRESULT Port(
  222.         [in] long Port
  223.         );
  224. };
  225. [
  226.     object,
  227.     public,
  228.     uuid(34621D6C-6CFF-11d1-AFF7-00C04FC31FEE),
  229.     dual,
  230.     helpstring("Interface to a generic directory service.")
  231. ]
  232. interface ITDirectory : IDispatch
  233. {
  234.     // find the type of the directory, NTDS, ILS, etc.
  235.     [propget, id(IDISPDIRECTORY | 1), helpstring("The type of the directory.")]
  236.     HRESULT DirectoryType(
  237.         [out, retval] DIRECTORY_TYPE *  pDirectoryType
  238.         );
  239.     [propget, id(IDISPDIRECTORY | 2), helpstring("The name of the directory.")]
  240.     HRESULT DisplayName(
  241.         [out, retval] BSTR *  pName
  242.         );
  243.     
  244.     [propget, id(IDISPDIRECTORY | 3), helpstring("If the object on the server needs refresh.")]
  245.     HRESULT IsDynamic(
  246.         [out, retval] VARIANT_BOOL *pfDynamic
  247.         );
  248.     [propget, id(IDISPDIRECTORY | 4), helpstring("The default Time To Live value(in seconds) for object created. Only apply to dynamic servers.")]
  249.     HRESULT DefaultObjectTTL(
  250.         [out, retval] long *pTTL
  251.         );
  252.     [propput, id(IDISPDIRECTORY | 4), helpstring("The default Time To Live value(in seconds) for object created. Only apply to dynamic servers. Minimum 300 seconds.")]
  253.     HRESULT DefaultObjectTTL(
  254.         [in] long TTL                   
  255.         );
  256.     [id(IDISPDIRECTORY | 5), helpstring("Enable the auto refresh for object created afterwards. Only apply to dynamic servers.")]
  257.     HRESULT EnableAutoRefresh(
  258.         [in] VARIANT_BOOL fEnable
  259.         );
  260.     [id(IDISPDIRECTORY | 6), helpstring("Connect to the server.")]
  261.     HRESULT Connect(
  262.         [in] VARIANT_BOOL fSecure
  263.         );
  264.     [id(IDISPDIRECTORY | 7), helpstring("Bind to the server.")]
  265.     HRESULT Bind(
  266.         [in] BSTR           pDomainName,   // Can be NULL.
  267.         [in] BSTR           pUserName,     // Can be NULL.
  268.         [in] BSTR           pPassword,     // Can be NULL.
  269.         [in] long           lFlags
  270.         );
  271.     [id(IDISPDIRECTORY | 8), helpstring("Add an object to the server.")]
  272.     HRESULT AddDirectoryObject(
  273.         [in] ITDirectoryObject *pDirectoryObject
  274.         );
  275.     [id(IDISPDIRECTORY | 9), helpstring("Modify an object on the server.")]
  276.     HRESULT ModifyDirectoryObject(
  277.         [in] ITDirectoryObject *pDirectoryObject
  278.         );
  279.     [id(IDISPDIRECTORY | 10), helpstring("Refresh the TTL for an object on the server. Only apply to dynamic servers.")]
  280.     HRESULT RefreshDirectoryObject(
  281.         [in] ITDirectoryObject *pDirectoryObject
  282.         );
  283.     [id(IDISPDIRECTORY | 11), helpstring("Delete an object from the server.")]
  284.     HRESULT DeleteDirectoryObject(
  285.         [in] ITDirectoryObject *pDirectoryObject
  286.         );
  287.     [propget, id(IDISPDIRECTORY | 12), helpstring("All the objects on the server with specified type and name.")]
  288.     HRESULT DirectoryObjects(
  289.         [in]            DIRECTORY_OBJECT_TYPE   DirectoryObjectType,
  290.         [in]            BSTR                    pName,
  291.         [out, retval]   VARIANT *               pVariant
  292.         );
  293.     [id(IDISPDIRECTORY | 13), hidden, restricted, helpstring("method EnumerateDirectoryObjects")]
  294.     HRESULT EnumerateDirectoryObjects(
  295.         [in]    DIRECTORY_OBJECT_TYPE   DirectoryObjectType,
  296.         [in]    BSTR                    pName,
  297.     [out]   IEnumDirectoryObject ** ppEnumObject
  298.     );
  299. };
  300. [
  301.     uuid(34621D6D-6CFF-11d1-AFF7-00C04FC31FEE),
  302.     helpstring("IEnumDirectory interface"),
  303.     hidden,
  304.     restricted,
  305.     pointer_default(unique)
  306. ]
  307. interface IEnumDirectory : IUnknown
  308. {
  309.     HRESULT Next(
  310.         [in] ULONG celt,
  311.         [out, size_is(celt), length_is(*pcFetched)] ITDirectory ** ppElements,
  312.         [in,out,ptr] ULONG * pcFetched
  313.         );
  314.     HRESULT Reset( void );
  315.     HRESULT Skip (
  316.         [in] ULONG celt
  317.         );
  318.     HRESULT Clone (
  319.         [out, retval] IEnumDirectory ** ppEnum
  320.         );
  321. };
  322. [
  323.     object,
  324.     public,
  325.     uuid(34621D6B-6CFF-11d1-AFF7-00C04FC31FEE),
  326.     dual,
  327.     helpstring("Interface to access directories and obejcts.")
  328. ]
  329. interface ITRendezvous : IDispatch
  330. {
  331.     [propget, id(1), helpstring("The default directories configured by system administrator.")]
  332.     HRESULT DefaultDirectories(
  333.         [out, retval] VARIANT * pVariant
  334.         );
  335.     [id(2), hidden, restricted, helpstring("method Enumerate directories")]
  336.     HRESULT EnumerateDefaultDirectories(
  337.     [out]   IEnumDirectory ** ppEnumDirectory
  338.     );
  339.     [id(3), helpstring("Create a directory of given type and name.")]
  340.     HRESULT CreateDirectory(
  341.         [in]            DIRECTORY_TYPE  DirectoryType,
  342.         [in]            BSTR            pName,
  343.     [out, retval]   ITDirectory **  ppDir
  344.     );
  345.     [id(4), helpstring("Create a new directory object.")]
  346.     HRESULT CreateDirectoryObject(
  347.         [in]            DIRECTORY_OBJECT_TYPE   DirectoryObjectType,
  348.         [in]            BSTR                    pName,
  349.     [out, retval]   ITDirectoryObject **    ppDirectoryObject
  350.     );
  351. };
  352. cpp_quote("")
  353. cpp_quote("")
  354. cpp_quote("/***************************************************************/")
  355. cpp_quote("/* Rend constants -- defined here for C apps                   */")
  356. cpp_quote("/* The subsequent definitions that MIDL generates from the     */")
  357. cpp_quote("/* module declaration are not used. The module declaration is  */")
  358. cpp_quote("/* retained, however, so that the constants show up in the     */")
  359. cpp_quote("/* type library.                                               */")
  360. cpp_quote("/***************************************************************/")
  361. cpp_quote("")
  362. cpp_quote("#define RENDBIND_AUTHENTICATE       0x00000001")
  363. cpp_quote("#define RENDBIND_DEFAULTDOMAINNAME  0x00000002")
  364. cpp_quote("#define RENDBIND_DEFAULTUSERNAME    0x00000004")
  365. cpp_quote("#define RENDBIND_DEFAULTPASSWORD    0x00000008")
  366. cpp_quote("/* this is just the previous three |'ed together for convenience. */")
  367. cpp_quote("#define RENDBIND_DEFAULTCREDENTIALS 0x0000000e")
  368. cpp_quote("")
  369. cpp_quote("#define __RendConstants_MODULE_DEFINED__")
  370. cpp_quote("")
  371. cpp_quote("/***************************************************************/")
  372. cpp_quote("/* end of rend constants section                               */")
  373. cpp_quote("/***************************************************************/")
  374. cpp_quote("")
  375. cpp_quote("")
  376. [
  377.     uuid(F1029E4D-CB5B-11D0-8D59-00C04FD91AC0),
  378.     version(1.0),
  379.     helpstring("Microsoft Rendezvous control 1.0 Type Library")
  380. ]
  381. library RENDLib
  382. {
  383.     importlib("stdole2.tlb");
  384.     
  385.     interface ITRendezvous;
  386.     interface ITDirectoryObjectConference;
  387.     interface ITDirectoryObjectUser;
  388.     interface ITDirectoryObject;
  389.     interface ITILSConfig;
  390.     interface ITDirectory;
  391.     [
  392.         uuid(F1029E5B-CB5B-11D0-8D59-00C04FD91AC0),
  393.         helpstring("The Rendezvous Control Class")
  394.     ]
  395.     coclass Rendezvous
  396.     {
  397.         [default] interface ITRendezvous;
  398.     };
  399.     [
  400.         uuid(A2382C3C-A108-11d2-B117-006008B0E5D2),
  401.         dllname("rend.dll"),
  402.         helpstring("TAPI 3.0 Rendezvous Control Constants")
  403.     ]
  404.     module RendConstants
  405.     {
  406.         const long RENDBIND_AUTHENTICATE       = 0x00000001;
  407.         const long RENDBIND_DEFAULTDOMAINNAME  = 0x00000002;
  408.         const long RENDBIND_DEFAULTUSERNAME    = 0x00000004;
  409.         const long RENDBIND_DEFAULTPASSWORD    = 0x00000008;
  410.         // this is just the previous three |'ed together for convenience.
  411.         const long RENDBIND_DEFAULTCREDENTIALS = 0x0000000e;
  412.     };
  413. };
  414. // eof