windows-nt/Source/XPSP1/NT/public/sdk/inc/rend.idl
2020-09-26 16:20:57 +08:00

496 lines
14 KiB
Plaintext

//
// Copyright (c) Microsoft Corporation. All rights reserved.
cpp_quote("/* Copyright (c) Microsoft Corporation. All rights reserved. */")
// rend.idl : IDL source for rend.dll
//
// This file will be processed by the MIDL tool to
// produce the type library (rend.tlb) and marshalling code.
import "oaidl.idl";
import "tapi3if.idl";
// Conference and user object Interfaces
const DISPID IDISPDIROBJECT = 0x00010000;
const DISPID IDISPDIROBJCONFERENCE = 0x00020000;
const DISPID IDISPDIROBJUSER = 0x00030000;
// Directory object interfaces
const DISPID IDISPDIRECTORY = 0x00010000;
const DISPID IDISPILSCONFIG = 0x00020000;
typedef enum DIRECTORY_TYPE
{
DT_NTDS = 1,
DT_ILS = 2
} DIRECTORY_TYPE;
typedef enum DIRECTORY_OBJECT_TYPE
{
OT_CONFERENCE = 1,
OT_USER = 2
} DIRECTORY_OBJECT_TYPE;
typedef enum RND_ADVERTISING_SCOPE
{
RAS_LOCAL = 1,
RAS_SITE = 2,
RAS_REGION = 3,
RAS_WORLD = 4
} RND_ADVERTISING_SCOPE;
[
object,
uuid(F1029E5D-CB5B-11D0-8D59-00C04FD91AC0),
dual,
helpstring("Interface for conference announcements."),
pointer_default(unique)
]
interface ITDirectoryObjectConference : IDispatch
{
[propget, id(IDISPDIROBJCONFERENCE | 1), helpstring("The protocol used in describing the conference.")]
HRESULT Protocol(
[out, retval] BSTR *ppProtocol
);
[propget, id(IDISPDIROBJCONFERENCE | 2), helpstring("The originator of the conference.")]
HRESULT Originator(
[out, retval] BSTR *ppOriginator
);
[propput, id(IDISPDIROBJCONFERENCE | 2), helpstring("The originator of the conference.")]
HRESULT Originator(
[in] BSTR pOriginator
);
[propget, id(IDISPDIROBJCONFERENCE | 3), helpstring("The scope of the conference.")]
HRESULT AdvertisingScope(
[out, retval] RND_ADVERTISING_SCOPE *pAdvertisingScope
);
[propput, id(IDISPDIROBJCONFERENCE | 3), helpstring("The scope of the conference.")]
HRESULT AdvertisingScope(
[in] RND_ADVERTISING_SCOPE AdvertisingScope
);
[propget, id(IDISPDIROBJCONFERENCE | 4), helpstring("The Url for the conference.")]
HRESULT Url(
[out, retval] BSTR *ppUrl
);
[propput, id(IDISPDIROBJCONFERENCE | 4), helpstring("The Url for the conference.")]
HRESULT Url(
[in] BSTR pUrl
);
[propget, id(IDISPDIROBJCONFERENCE | 5), helpstring("The description of the conference.")]
HRESULT Description(
[out, retval] BSTR *ppDescription
);
[propput, id(IDISPDIROBJCONFERENCE | 5), helpstring("The description of the conference.")]
HRESULT Description(
[in] BSTR pDescription
);
[propget, id(IDISPDIROBJCONFERENCE | 6), helpstring("If the conference is encrypted.")]
HRESULT IsEncrypted(
[out, retval] VARIANT_BOOL *pfEncrypted
);
[propput, id(IDISPDIROBJCONFERENCE | 6), helpstring("If the conference is encrypted.")]
HRESULT IsEncrypted(
[in] VARIANT_BOOL fEncrypted
);
[propget, id(IDISPDIROBJCONFERENCE | 7), helpstring("The start time of the conference.")]
HRESULT StartTime(
[out, retval] DATE *pDate
);
[propput, id(IDISPDIROBJCONFERENCE | 7), helpstring("The start time of the conference.")]
HRESULT StartTime(
[in] DATE Date
);
[propget, id(IDISPDIROBJCONFERENCE | 8), helpstring("The stop time of the conference.")]
HRESULT StopTime(
[out, retval] DATE *pDate
);
[propput, id(IDISPDIROBJCONFERENCE | 8), helpstring("The stop time of the conference.")]
HRESULT StopTime(
[in] DATE Date
);
};
[
object,
uuid(34621D6F-6CFF-11d1-AFF7-00C04FC31FEE),
dual,
helpstring("Interface for user object."),
pointer_default(unique)
]
interface ITDirectoryObjectUser : IDispatch
{
[propget, id(IDISPDIROBJUSER | 1), helpstring("The primary IP phone attribute.")]
HRESULT IPPhonePrimary(
[out, retval] BSTR *ppName
);
[propput, id(IDISPDIROBJUSER | 1), helpstring("The primary IP phone attribute.")]
HRESULT IPPhonePrimary(
[in] BSTR pName
);
};
[
uuid(34621D70-6CFF-11d1-AFF7-00C04FC31FEE),
helpstring("IEnumDialableAddresses interface"),
hidden,
restricted,
pointer_default(unique)
]
interface IEnumDialableAddrs : IUnknown
{
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt)] BSTR * ppElements,
[in,out,ptr] ULONG * pcFetched
);
HRESULT Reset( void );
HRESULT Skip (
[in] ULONG celt
);
HRESULT Clone (
[out, retval] IEnumDialableAddrs ** ppEnum
);
};
[
object,
uuid(34621D6E-6CFF-11d1-AFF7-00C04FC31FEE),
dual,
helpstring("Interface for an object in the directory."),
pointer_default(unique)
]
interface ITDirectoryObject : IDispatch
{
[propget, id(IDISPDIROBJECT | 1), helpstring("The type of this object.")]
HRESULT ObjectType(
[out, retval] DIRECTORY_OBJECT_TYPE * pObjectType
);
[propget, id(IDISPDIROBJECT | 2), helpstring("The name of this object.")]
HRESULT Name(
[out, retval] BSTR *ppName
);
[propput, id(IDISPDIROBJECT | 2), helpstring("The name of this object.")]
HRESULT Name(
[in] BSTR pName
);
[propget, id(IDISPDIROBJECT | 3), helpstring("The addresses of the object that can be dialed.")]
HRESULT DialableAddrs(
[in] long dwAddressType, //defined in tapi.h
[out, retval] VARIANT * pVariant
);
[id(IDISPDIROBJECT | 4), hidden, restricted, helpstring("method EnumerateDialableAddrs")]
HRESULT EnumerateDialableAddrs(
[in] DWORD dwAddressType, //defined in tapi.h
[out] IEnumDialableAddrs ** ppEnumDialableAddrs
);
[propget, id(IDISPDIROBJECT | 5), helpstring("The security descriptor.")]
HRESULT SecurityDescriptor(
[out, retval] IDispatch ** ppSecDes
);
[propput, id(IDISPDIROBJECT | 5), helpstring("The security descriptor.")]
HRESULT SecurityDescriptor(
[in] IDispatch * pSecDes
);
};
[
object,
uuid(06C9B64A-306D-11D1-9774-00C04FD91AC0),
helpstring("IEnumDirectoryObject interface"),
hidden,
restricted,
pointer_default(unique)
]
interface IEnumDirectoryObject : IUnknown
{
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt)] ITDirectoryObject **pVal,
[in, out, ptr] ULONG * pcFetched
);
HRESULT Reset( void );
HRESULT Skip (
[in] ULONG celt
);
HRESULT Clone (
[out, retval] IEnumDirectoryObject ** ppEnum
);
};
[
object,
public,
uuid(34621D72-6CFF-11d1-AFF7-00C04FC31FEE),
dual,
helpstring("Interface to configure ILS server.")
]
interface ITILSConfig : IDispatch
{
[propget, id(IDISPILSCONFIG | 1), helpstring("The port the ILS server is listening on.")]
HRESULT Port(
[out, retval] long *pPort
);
[propput, id(IDISPILSCONFIG | 1), helpstring("The port the ILS server is listening on.")]
HRESULT Port(
[in] long Port
);
};
[
object,
public,
uuid(34621D6C-6CFF-11d1-AFF7-00C04FC31FEE),
dual,
helpstring("Interface to a generic directory service.")
]
interface ITDirectory : IDispatch
{
// find the type of the directory, NTDS, ILS, etc.
[propget, id(IDISPDIRECTORY | 1), helpstring("The type of the directory.")]
HRESULT DirectoryType(
[out, retval] DIRECTORY_TYPE * pDirectoryType
);
[propget, id(IDISPDIRECTORY | 2), helpstring("The name of the directory.")]
HRESULT DisplayName(
[out, retval] BSTR * pName
);
[propget, id(IDISPDIRECTORY | 3), helpstring("If the object on the server needs refresh.")]
HRESULT IsDynamic(
[out, retval] VARIANT_BOOL *pfDynamic
);
[propget, id(IDISPDIRECTORY | 4), helpstring("The default Time To Live value(in seconds) for object created. Only apply to dynamic servers.")]
HRESULT DefaultObjectTTL(
[out, retval] long *pTTL
);
[propput, id(IDISPDIRECTORY | 4), helpstring("The default Time To Live value(in seconds) for object created. Only apply to dynamic servers. Minimum 300 seconds.")]
HRESULT DefaultObjectTTL(
[in] long TTL
);
[id(IDISPDIRECTORY | 5), helpstring("Enable the auto refresh for object created afterwards. Only apply to dynamic servers.")]
HRESULT EnableAutoRefresh(
[in] VARIANT_BOOL fEnable
);
[id(IDISPDIRECTORY | 6), helpstring("Connect to the server.")]
HRESULT Connect(
[in] VARIANT_BOOL fSecure
);
[id(IDISPDIRECTORY | 7), helpstring("Bind to the server.")]
HRESULT Bind(
[in] BSTR pDomainName, // Can be NULL.
[in] BSTR pUserName, // Can be NULL.
[in] BSTR pPassword, // Can be NULL.
[in] long lFlags
);
[id(IDISPDIRECTORY | 8), helpstring("Add an object to the server.")]
HRESULT AddDirectoryObject(
[in] ITDirectoryObject *pDirectoryObject
);
[id(IDISPDIRECTORY | 9), helpstring("Modify an object on the server.")]
HRESULT ModifyDirectoryObject(
[in] ITDirectoryObject *pDirectoryObject
);
[id(IDISPDIRECTORY | 10), helpstring("Refresh the TTL for an object on the server. Only apply to dynamic servers.")]
HRESULT RefreshDirectoryObject(
[in] ITDirectoryObject *pDirectoryObject
);
[id(IDISPDIRECTORY | 11), helpstring("Delete an object from the server.")]
HRESULT DeleteDirectoryObject(
[in] ITDirectoryObject *pDirectoryObject
);
[propget, id(IDISPDIRECTORY | 12), helpstring("All the objects on the server with specified type and name.")]
HRESULT DirectoryObjects(
[in] DIRECTORY_OBJECT_TYPE DirectoryObjectType,
[in] BSTR pName,
[out, retval] VARIANT * pVariant
);
[id(IDISPDIRECTORY | 13), hidden, restricted, helpstring("method EnumerateDirectoryObjects")]
HRESULT EnumerateDirectoryObjects(
[in] DIRECTORY_OBJECT_TYPE DirectoryObjectType,
[in] BSTR pName,
[out] IEnumDirectoryObject ** ppEnumObject
);
};
[
uuid(34621D6D-6CFF-11d1-AFF7-00C04FC31FEE),
helpstring("IEnumDirectory interface"),
hidden,
restricted,
pointer_default(unique)
]
interface IEnumDirectory : IUnknown
{
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pcFetched)] ITDirectory ** ppElements,
[in,out,ptr] ULONG * pcFetched
);
HRESULT Reset( void );
HRESULT Skip (
[in] ULONG celt
);
HRESULT Clone (
[out, retval] IEnumDirectory ** ppEnum
);
};
[
object,
public,
uuid(34621D6B-6CFF-11d1-AFF7-00C04FC31FEE),
dual,
helpstring("Interface to access directories and obejcts.")
]
interface ITRendezvous : IDispatch
{
[propget, id(1), helpstring("The default directories configured by system administrator.")]
HRESULT DefaultDirectories(
[out, retval] VARIANT * pVariant
);
[id(2), hidden, restricted, helpstring("method Enumerate directories")]
HRESULT EnumerateDefaultDirectories(
[out] IEnumDirectory ** ppEnumDirectory
);
[id(3), helpstring("Create a directory of given type and name.")]
HRESULT CreateDirectory(
[in] DIRECTORY_TYPE DirectoryType,
[in] BSTR pName,
[out, retval] ITDirectory ** ppDir
);
[id(4), helpstring("Create a new directory object.")]
HRESULT CreateDirectoryObject(
[in] DIRECTORY_OBJECT_TYPE DirectoryObjectType,
[in] BSTR pName,
[out, retval] ITDirectoryObject ** ppDirectoryObject
);
};
cpp_quote("")
cpp_quote("")
cpp_quote("/***************************************************************/")
cpp_quote("/* Rend constants -- defined here for C apps */")
cpp_quote("/* The subsequent definitions that MIDL generates from the */")
cpp_quote("/* module declaration are not used. The module declaration is */")
cpp_quote("/* retained, however, so that the constants show up in the */")
cpp_quote("/* type library. */")
cpp_quote("/***************************************************************/")
cpp_quote("")
cpp_quote("#define RENDBIND_AUTHENTICATE 0x00000001")
cpp_quote("#define RENDBIND_DEFAULTDOMAINNAME 0x00000002")
cpp_quote("#define RENDBIND_DEFAULTUSERNAME 0x00000004")
cpp_quote("#define RENDBIND_DEFAULTPASSWORD 0x00000008")
cpp_quote("/* this is just the previous three |'ed together for convenience. */")
cpp_quote("#define RENDBIND_DEFAULTCREDENTIALS 0x0000000e")
cpp_quote("")
cpp_quote("#define __RendConstants_MODULE_DEFINED__")
cpp_quote("")
cpp_quote("/***************************************************************/")
cpp_quote("/* end of rend constants section */")
cpp_quote("/***************************************************************/")
cpp_quote("")
cpp_quote("")
[
uuid(F1029E4D-CB5B-11D0-8D59-00C04FD91AC0),
version(1.0),
helpstring("Microsoft Rendezvous control 1.0 Type Library")
]
library RENDLib
{
importlib("stdole2.tlb");
interface ITRendezvous;
interface ITDirectoryObjectConference;
interface ITDirectoryObjectUser;
interface ITDirectoryObject;
interface ITILSConfig;
interface ITDirectory;
[
uuid(F1029E5B-CB5B-11D0-8D59-00C04FD91AC0),
helpstring("The Rendezvous Control Class")
]
coclass Rendezvous
{
[default] interface ITRendezvous;
};
[
uuid(A2382C3C-A108-11d2-B117-006008B0E5D2),
dllname("rend.dll"),
helpstring("TAPI 3.0 Rendezvous Control Constants")
]
module RendConstants
{
const long RENDBIND_AUTHENTICATE = 0x00000001;
const long RENDBIND_DEFAULTDOMAINNAME = 0x00000002;
const long RENDBIND_DEFAULTUSERNAME = 0x00000004;
const long RENDBIND_DEFAULTPASSWORD = 0x00000008;
// this is just the previous three |'ed together for convenience.
const long RENDBIND_DEFAULTCREDENTIALS = 0x0000000e;
};
};
// eof