summaryrefslogtreecommitdiffstats
path: root/Src/devices/ifc_deviceprovider.h
blob: 6f5f5da6e37896968079ab29ec95fd3ae4ce0bf4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef _NULLSOFT_WINAMP_DEVICES_DEVICE_PROVIDER_INTERFACE_HEADER
#define _NULLSOFT_WINAMP_DEVICES_DEVICE_PROVIDER_INTERFACE_HEADER

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#include <bfc/platform/guid.h>

// {FAC6EBEE-107A-4133-A620-856A281EC704}
static const GUID IFC_DeviceProvider = 
{ 0xfac6ebee, 0x107a, 0x4133, { 0xa6, 0x20, 0x85, 0x6a, 0x28, 0x1e, 0xc7, 0x4 } };

#include <bfc/dispatch.h>

class api_devicemanager;

class __declspec(novtable) ifc_deviceprovider : public Dispatchable
{
protected:
	ifc_deviceprovider() {}
	~ifc_deviceprovider() {}

public:
	HRESULT BeginDiscovery(api_devicemanager *manager);
	HRESULT CancelDiscovery();
	HRESULT GetActive();

public:
	DISPATCH_CODES
	{
		API_BEGINDISCOVERY		= 10,
		API_CANCELDISCOVERY		= 20,
		API_GETACTIVE			= 30,
	};
};


inline HRESULT ifc_deviceprovider::BeginDiscovery(api_devicemanager *manager)
{
	return _call(API_BEGINDISCOVERY, (HRESULT)E_NOTIMPL, manager);
}

inline HRESULT ifc_deviceprovider::CancelDiscovery()
{
	return _call(API_CANCELDISCOVERY, (HRESULT)E_NOTIMPL);
}

inline HRESULT ifc_deviceprovider::GetActive()
{
	return _call(API_GETACTIVE, (HRESULT)E_NOTIMPL);
}

#endif //_NULLSOFT_WINAMP_DEVICES_DEVICE_PROVIDER_INTERFACE_HEADER