xpmgr/BuildTools/Include/PortableDeviceConnectApi.idl

141 lines
4.9 KiB
Plaintext

//-----------------------------------------------------------------------------
//
// @copyright (C) COPYRIGHT MICROSOFT CORPORATION
//
//-----------------------------------------------------------------------------
import "wtypes.idl";
import "propsys.idl";
import "PortableDeviceConnectImports.idl";
interface IEnumPortableDeviceConnectors;
interface IPortableDeviceConnector;
interface IConnectionRequestCallback;
interface IConnectionStateCallback;
//---------------------------------------------------------
// Property keys supported by the MTP Bluetooth Enumerator
//---------------------------------------------------------
cpp_quote("")
cpp_quote("// Property set by the MTP Bluetooth Enumerator indicate whether the device is connected")
cpp_quote("// DEVPKEY_MTPBTH_IsConnected, DEVPROP_TYPE_BOOLEAN")
cpp_quote("// ")
cpp_quote("// {ea1237fa-589d-4472-84e4-0abe36fd62ef}.2")
cpp_quote("DEFINE_DEVPROPKEY(DEVPKEY_MTPBTH_IsConnected, 0xea1237fa, 0x589d, 0x4472, 0x84, 0xe4, 0x0a, 0xbe, 0x36, 0xfd, 0x62, 0xef, 2);")
cpp_quote("")
//---------------------------------------------------------
// This interface is used to enumerate available portable
// device connectors.
//---------------------------------------------------------
[
object,
uuid(bfdef549-9247-454f-bd82-06fe80853faa),
helpstring("IEnumPortableDeviceConnectors Interface"),
pointer_default(unique)
]
interface IEnumPortableDeviceConnectors : IUnknown
{
HRESULT Next(
[in] UINT32 cRequested,
[out, size_is(cRequested), length_is(*pcFetched)]
IPortableDeviceConnector** pConnectors,
[in, out, unique] UINT32* pcFetched);
HRESULT Skip(
[in] UINT32 cConnectors);
HRESULT Reset();
HRESULT Clone(
[out] IEnumPortableDeviceConnectors** ppEnum);
};
//---------------------------------------------------------
// This interface is used by applications to communicate to
// portable device connectors.
//---------------------------------------------------------
[
object,
uuid(625e2df8-6392-4cf0-9ad1-3cfa5f17775c),
helpstring("IPortableDeviceConnector Interface"),
pointer_default(unique)
]
interface IPortableDeviceConnector : IUnknown
{
// Sends an asynchronous connection request to the device.
HRESULT Connect(
[in] IConnectionRequestCallback* pCallback);
// Sends an asynchronous disconnect request to the device.
HRESULT Disconnect(
[in] IConnectionRequestCallback* pCallback);
// Cancels a pending Connect or Disconnect request.
HRESULT Cancel(
[in] IConnectionRequestCallback* pCallback);
// Reads a device property synchronously.
// The caller is responsible for calling CoTaskMemFree on *ppData when done.
HRESULT GetProperty(
[in] const DEVPROPKEY* pPropertyKey,
[out] DEVPROPTYPE* pPropertyType,
[out, size_is(, *pcbData)] BYTE** ppData,
[out] UINT32* pcbData);
// Writes a device property synchronously.
// The caller is responsible for elevating to get the necessary privileges.
HRESULT SetProperty(
[in] const DEVPROPKEY* pPropertyKey,
[in] DEVPROPTYPE PropertyType,
[in, size_is(cbData)] const BYTE* pData,
[in] UINT32 cbData);
// Retrieves the connector's PnP device ID
// Caller is responsible for calling CoTaskMemAlloc on ppwszPnPID when done.
HRESULT GetPnPID(
[out] LPWSTR* ppwszPnPID);
};
//---------------------------------------------------------
// Callback interface for implemented by clients for
// retrieving results of an asynchronous portable device
// connect request
//---------------------------------------------------------
[
object,
uuid(272c9ae0-7161-4ae0-91bd-9f448ee9c427),
helpstring("IConnectionRequestCallback Interface"),
pointer_default(unique)
]
interface IConnectionRequestCallback : IUnknown
{
// Returns the status of a completed request
HRESULT OnComplete(
[in] HRESULT hrStatus);
};
//---------------------------------------------------------
// Type library definition
//---------------------------------------------------------
[
uuid(8fe73967-aae2-4d77-9921-0c4962631056),
version(1.0),
helpstring("PortableDeviceConnectApiLib 1.0 Type Library")
]
library PortableDeviceConnectApiLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(a1570149-e645-4f43-8b0d-409b061db2fc),
helpstring("EnumBthMtpConnectors Class")
]
coclass EnumBthMtpConnectors
{
[default] interface IEnumPortableDeviceConnectors;
};
};