You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
495 lines
15 KiB
495 lines
15 KiB
//
|
|
// 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
|