mirror of https://github.com/UMSKT/xpmgr.git
141 lines
4.9 KiB
Plaintext
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;
|
|
};
|
|
};
|
|
|