MDhcp.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:8k
- //
- // Copyright (c) 1998-1999 Microsoft Corporation
- //
- cpp_quote("/* Copyright (c) 1998-1999 Microsoft Corporation */")
- // mdhcp.idl : IDL source for mdhcp.dll
- //
- // This file will be processed by the MIDL tool to
- // produce the type library (mdhcp.tlb) and marshalling code.
- import "oaidl.idl";
- import "ocidl.idl";
- import "tapi3if.idl";
- /////////////////////////////////////////////////////////////////
- //
- // This interface wraps the MCAST_SCOPE_INFO structure
- //
- // it is read only, and only obtained from
- // enumeratescopes methods in the
- // IMcastAddressAllocation interface.
- //
- [
- object,
- uuid(DF0DAEF4-A289-11D1-8697-006008B0E5D2),
- dual,
- helpstring("IMcastScope Interface"),
- pointer_default(unique)
- ]
- interface IMcastScope : IDispatch
- {
- [propget, id(1), helpstring("Get the scope ID for this scope.")]
- HRESULT ScopeID(
- [out, retval] long *pID
- );
- [propget, id(2), helpstring("Get the server ID for this scope.")]
- HRESULT ServerID(
- [out, retval] long *pID
- );
- [propget, id(3), helpstring("Get the interface ID for this scope.")]
- HRESULT InterfaceID(
- [out, retval] long *pID
- );
- [propget, id(4), helpstring("Get a textual description of this scope.")]
- HRESULT ScopeDescription(
- [out, retval] BSTR *ppDescription
- );
- [propget, id(5), helpstring("Get the TTL for leases in this scope.")]
- HRESULT TTL(
- [out, retval] long *pTTL
- );
- }
- //
- // this interface wraps the MCAST_LEASE_REQUEST and/or MCAST_LEASE_RESPONSE
- // structures
- //
- // It's read-write. Most properties can only be
- // set from the client when the object
- // is created, except the start and stop times, which can be
- // set later for convenience when doing renewals.
- //
- [
- object,
- uuid(DF0DAEFD-A289-11D1-8697-006008B0E5D2),
- dual,
- helpstring("IMcastLeaseInfo Interface"),
- pointer_default(unique)
- ]
- interface IMcastLeaseInfo : IDispatch
- {
- [propget, id(1), helpstring("Get the request ID")]
- HRESULT RequestID(
- [out, retval ] BSTR * ppRequestID
- );
- [propget, id(2), helpstring("The start time of the lease.")]
- HRESULT LeaseStartTime(
- [out, retval] DATE *pTime
- );
- [propput, id(2), helpstring("The start time of the lease.")]
- HRESULT LeaseStartTime(
- [in] DATE time
- );
- [propget, id(3), helpstring("The stop time of the lease.")]
- HRESULT LeaseStopTime(
- [out, retval] DATE *pTime
- );
- [propput, id(3), helpstring("The stop time of the lease.")]
- HRESULT LeaseStopTime(
- [in] DATE time
- );
- [propget, id(4), helpstring("The number of addresses of the lease.")]
- HRESULT AddressCount(
- [out, retval] long *pCount
- );
- [propget, id(5), helpstring("The ip address of server where the lease was requested/renewed.")]
- HRESULT ServerAddress(
- [out, retval] BSTR *ppAddress
- );
- [propget, id(6), helpstring("The TTL of this lease assignment.")]
- HRESULT TTL(
- [out, retval] long *pTTL
- );
- //
- // collection (used in vb) for enumeration of addresses
- //
- [propget, id(7), helpstring("Get a collection of the addresses for this lease.")]
- HRESULT Addresses(
- [out, retval] VARIANT * pVariant
- );
- //
- // c method to enumerate addresses
- //
- [id(8), hidden, helpstring("Get an enumeration of the addresses for this lease.")]
- HRESULT EnumerateAddresses(
- [out, retval] IEnumBstr ** ppEnumAddresses
- );
- }
- // Obtained using IMcastAddressAllocation::EnumerateScopes
- [
- object,
- uuid(DF0DAF09-A289-11D1-8697-006008B0E5D2),
- hidden,
- helpstring("IEnumMcastScope Interface"),
- pointer_default(unique)
- ]
- interface IEnumMcastScope : IUnknown
- {
- HRESULT Next(
- [in] ULONG celt,
- [out] IMcastScope ** ppScopes,
- [in,out,ptr] ULONG * pceltFetched
- );
- HRESULT Reset( void );
- HRESULT Skip (
- [in] ULONG celt
- );
- HRESULT Clone (
- [out, retval] IEnumMcastScope ** ppEnum
- );
- }
- //
- // this interface encapsulates the 4
- // multicast address allocation functions
- //
- [
- object,
- uuid(DF0DAEF1-A289-11D1-8697-006008B0E5D2),
- dual,
- helpstring("IMcastAddressAllocation Interface"),
- pointer_default(unique)
- ]
- interface IMcastAddressAllocation : IDispatch
- {
- // This function is for VB and other scripting languages.
- // It returns a variant, which is a collection of IMcastScope pointers.
- [propget, id(1), helpstring("Get a collection of available scopes.")]
- HRESULT Scopes(
- [out, retval] VARIANT * pVariant
- );
- // This function is the same as the first one, but it is for C/C++.
- [id(2), hidden, helpstring("Get an enumeration of available scopes.")]
- HRESULT EnumerateScopes(
- [out] IEnumMcastScope ** ppEnumMcastScope
- );
- [id(3), helpstring("Request a lease for one or more multicast addresses.")]
- HRESULT RequestAddress(
- [in] IMcastScope * pScope, // from the scope enum
- [in] DATE LeaseStartTime, // desired begin time
- [in] DATE LeaseStopTime, // desired end time
- [in] long NumAddresses, // how many addresses we want
- [out, retval] IMcastLeaseInfo ** ppLeaseResponse // returned on success.
- // contains parameters of what
- // was actually granted
- );
- [id(4), helpstring("Renew a lease.")]
- HRESULT RenewAddress(
- [in] long lReserved, // unused
- [in] IMcastLeaseInfo * pRenewRequest,
- [out, retval] IMcastLeaseInfo ** ppRenewResponse
- );
- [id(5), helpstring("Release (unreserve) a lease.")]
- HRESULT ReleaseAddress(
- [in] IMcastLeaseInfo * pReleaseRequest
- );
- [id(6), hidden, helpstring("Create a lease info object -- C++ version.")]
- HRESULT CreateLeaseInfo(
- [in] DATE LeaseStartTime,
- [in] DATE LeaseStopTime,
- [in] DWORD dwNumAddresses,
- [in] LPWSTR * ppAddresses,
- [in] LPWSTR pRequestID,
- [in] LPWSTR pServerAddress,
- [out, retval] IMcastLeaseInfo ** ppReleaseRequest
- );
- [id(7), helpstring("Create a lease info object -- Automation version.")]
- HRESULT CreateLeaseInfoFromVariant(
- [in] DATE LeaseStartTime,
- [in] DATE LeaseStopTime,
- [in] VARIANT vAddresses,
- [in] BSTR pRequestID,
- [in] BSTR pServerAddress,
- [out, retval] IMcastLeaseInfo ** ppReleaseRequest
- );
- }
- // The type library.
- [
- uuid(64217CC0-A285-11D1-8697-006008B0E5D2),
- version(1.0),
- helpstring("Microsoft Multicast Address Allocation Client COM Wrapper 1.0 Type Library")
- ]
- library McastLib
- {
- importlib("stdole32.tlb");
- importlib("stdole2.tlb");
- interface IMcastScope;
- interface IEnumBstr;
- interface IMcastLeaseInfo;
- interface IEnumMcastScope;
- interface IMcastAddressAllocation;
- [
- uuid(DF0DAEF2-A289-11D1-8697-006008B0E5D2),
- helpstring("Multicast Address Allocation Class")
- ]
- coclass McastAddressAllocation
- {
- [default] interface IMcastAddressAllocation;
- };
- };