123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- #ifndef _NULLSOFT_WINAMP_DEVICES_DEVICE_INTERFACE_HEADER
- #define _NULLSOFT_WINAMP_DEVICES_DEVICE_INTERFACE_HEADER
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
- #endif
- #include <bfc/platform/guid.h>
- // {CAC1D7F6-AA27-47eb-BAF7-512BAAE04F07}
- static const GUID IFC_Device =
- { 0xcac1d7f6, 0xaa27, 0x47eb, { 0xba, 0xf7, 0x51, 0x2b, 0xaa, 0xe0, 0x4f, 0x7 } };
- #include "ifc_deviceobject.h"
- class ifc_deviceevent;
- class ifc_devicesupportedcommandenum;
- class ifc_deviceactivity;
- typedef enum DeviceCommandFlags DeviceCommandFlags;
- typedef enum DeviceCommandContext DeviceCommandContext;
- class __declspec(novtable) ifc_device : public ifc_deviceobject
- {
- protected:
- ifc_device() {}
- ~ifc_device() {}
- public:
- const char *GetType();
- const char *GetDisplayType();
- const char *GetConnection();
- BOOL GetHidden();
-
- HRESULT GetTotalSpace(uint64_t *size);
- HRESULT GetUsedSpace(uint64_t *size);
- BOOL GetAttached();
- HRESULT Attach(HWND hostWindow);
- HRESULT Detach(HWND hostWindow);
-
- HRESULT EnumerateCommands(ifc_devicesupportedcommandenum **enumerator, DeviceCommandContext context);
- HRESULT SendCommand(const char *command, HWND hostWindow, ULONG_PTR param);
- HRESULT GetCommandFlags(const char *command, DeviceCommandFlags *flags);
- HRESULT GetActivity(ifc_deviceactivity **activity);
- HRESULT Advise(ifc_deviceevent *handler);
- HRESULT Unadvise(ifc_deviceevent *handler);
- HWND CreateView(HWND parentWindow);
- void SetNavigationItem(void *navigationItem);
- HRESULT GetDropSupported(unsigned int dataType);
- HRESULT Drop(void *data, unsigned int dataType);
- HRESULT SetDisplayName(const wchar_t *displayName);
-
- HRESULT GetModel(wchar_t *buffer, size_t bufferSize); // - end-user-visible name for the end produt.
- HRESULT GetStatus(wchar_t *buffer, size_t bufferSize); // - free-form status message (example: "Last synchronized 19:20 01/10/10").
- public:
- DISPATCH_CODES
- {
- API_GETTYPE = 10,
- API_GETCONNECTION = 20,
- API_GETHIDDEN = 30,
- API_GETTOTALSPACE = 40,
- API_GETUSEDSPACE = 50,
- API_GETATTACHED = 60,
- API_ATTACH = 70,
- API_DETACH = 80,
- API_ENUMERATECOMMANDS = 90,
- API_SENDCOMMAND = 100,
- API_GETCOMMANDFLAGS = 110,
- API_GETACTIVITY = 120,
- API_ADVISE = 130,
- API_UNADVISE = 140,
- API_CREATEVIEW = 150,
- API_SETNAVIGATIONITEM = 160,
- API_GETDROPSUPPORTED = 170,
- API_DROP = 180,
- API_SETDISPLAYNAME = 190,
- API_GETMODEL = 200,
- API_GETSTATUS = 210,
- API_GETDISPLAYTYPE = 220,
- };
- };
- inline const char *ifc_device::GetType()
- {
- return _call(API_GETTYPE, (const char*)NULL);
- }
- inline const char *ifc_device::GetDisplayType()
- {
- return _call(API_GETDISPLAYTYPE, (const char*)NULL);
- }
- inline const char *ifc_device::GetConnection()
- {
- return _call(API_GETCONNECTION, (const char*)NULL);
- }
- inline BOOL ifc_device::GetHidden()
- {
- return _call(API_GETHIDDEN, (BOOL)FALSE);
- }
- inline HRESULT ifc_device::GetTotalSpace(uint64_t *size)
- {
- return _call(API_GETTOTALSPACE, (HRESULT)E_NOTIMPL, size);
- }
- inline HRESULT ifc_device::GetUsedSpace(uint64_t *size)
- {
- return _call(API_GETUSEDSPACE, (HRESULT)E_NOTIMPL, size);
- }
- inline BOOL ifc_device::GetAttached()
- {
- return _call(API_GETATTACHED, (BOOL)FALSE);
- }
- inline HRESULT ifc_device::Attach(HWND hostWindow)
- {
- return _call(API_ATTACH, (HRESULT)E_NOTIMPL, hostWindow);
- }
- inline HRESULT ifc_device::Detach(HWND hostWindow)
- {
- return _call(API_DETACH, (HRESULT)E_NOTIMPL, hostWindow);
- }
- inline HRESULT ifc_device::EnumerateCommands(ifc_devicesupportedcommandenum **enumerator, DeviceCommandContext context)
- {
- return _call(API_ENUMERATECOMMANDS, (HRESULT)E_NOTIMPL, enumerator, context);
- }
- inline HRESULT ifc_device::SendCommand(const char *command, HWND hostWindow, ULONG_PTR param)
- {
- return _call(API_SENDCOMMAND, (HRESULT)E_NOTIMPL, command, hostWindow, param);
- }
- inline HRESULT ifc_device::GetCommandFlags(const char *command, DeviceCommandFlags *flags)
- {
- return _call(API_GETCOMMANDFLAGS, (HRESULT)E_NOTIMPL, command, flags);
- }
- inline HRESULT ifc_device::GetActivity(ifc_deviceactivity **activity)
- {
- return _call(API_GETACTIVITY, (HRESULT)E_NOTIMPL, activity);
- }
- inline HRESULT ifc_device::Advise(ifc_deviceevent *handler)
- {
- return _call(API_ADVISE, (HRESULT)E_NOTIMPL, handler);
- }
- inline HRESULT ifc_device::Unadvise(ifc_deviceevent *handler)
- {
- return _call(API_UNADVISE, (HRESULT)E_NOTIMPL, handler);
- }
- inline HWND ifc_device::CreateView(HWND parentWindow)
- {
- return _call(API_CREATEVIEW, (HWND)NULL, parentWindow);
- }
- inline void ifc_device::SetNavigationItem(void *navigationItem)
- {
- _voidcall(API_SETNAVIGATIONITEM, navigationItem);
- }
- inline HRESULT ifc_device::GetDropSupported(unsigned int dataType)
- {
- return _call(API_GETDROPSUPPORTED, (HRESULT)E_NOTIMPL, dataType);
- }
- inline HRESULT ifc_device::Drop(void *data, unsigned int dataType)
- {
- return _call(API_DROP, (HRESULT)E_NOTIMPL, data, dataType);
- }
- inline HRESULT ifc_device::SetDisplayName(const wchar_t *displayName)
- {
- return _call(API_SETDISPLAYNAME, (HRESULT)E_NOTIMPL, displayName);
- }
- inline HRESULT ifc_device::GetModel(wchar_t *buffer, size_t bufferSize)
- {
- return _call(API_GETMODEL, (HRESULT)E_NOTIMPL, buffer, bufferSize);
- }
- inline HRESULT ifc_device::GetStatus(wchar_t *buffer, size_t bufferSize)
- {
- return _call(API_GETSTATUS, (HRESULT)E_NOTIMPL, buffer, bufferSize);
- }
- #endif // _NULLSOFT_WINAMP_DEVICES_DEVICE_INTERFACE_HEADER
|