66 lines
1.6 KiB
C
66 lines
1.6 KiB
C
|
#pragma once
|
||
|
#include "../nu/refcount.h"
|
||
|
#include "../devices/ifc_devicecommand.h"
|
||
|
#include "../devices/ifc_devicesupportedcommand.h"
|
||
|
#include "../devices/ifc_devicesupportedcommandenum.h"
|
||
|
class PortableCommand : public ifc_devicecommand
|
||
|
{
|
||
|
public:
|
||
|
PortableCommand(const char *name, int title, int description);
|
||
|
const char *name;
|
||
|
int title;
|
||
|
int description;
|
||
|
|
||
|
const char *GetName();
|
||
|
HRESULT GetIcon(wchar_t *buffer, size_t bufferSize, int width, int height);
|
||
|
|
||
|
HRESULT GetDisplayName(wchar_t *buffer, size_t bufferSize);
|
||
|
|
||
|
HRESULT GetDescription(wchar_t *buffer, size_t bufferSize);
|
||
|
RECVS_DISPATCH;
|
||
|
};
|
||
|
|
||
|
typedef struct DeviceCommandInfo
|
||
|
{
|
||
|
const char *name;
|
||
|
DeviceCommandFlags flags;
|
||
|
} DeviceCommandInfo;
|
||
|
|
||
|
BOOL SetDeviceCommandInfo(DeviceCommandInfo *info, const char *name, DeviceCommandFlags flags);
|
||
|
|
||
|
class DeviceCommand : public Countable<ifc_devicesupportedcommand>
|
||
|
{
|
||
|
public:
|
||
|
DeviceCommand(const char *name, DeviceCommandFlags flags);
|
||
|
DeviceCommand(const DeviceCommandInfo *commandInfo);
|
||
|
|
||
|
public:
|
||
|
const char *GetName();
|
||
|
HRESULT GetFlags(DeviceCommandFlags *flags);
|
||
|
REFERENCE_COUNT_IMPLEMENTATION;
|
||
|
|
||
|
public:
|
||
|
const char *name;
|
||
|
DeviceCommandFlags flags;
|
||
|
RECVS_DISPATCH;
|
||
|
};
|
||
|
|
||
|
class DeviceCommandEnumerator : public Countable<ifc_devicesupportedcommandenum>
|
||
|
{
|
||
|
public:
|
||
|
DeviceCommandEnumerator(const DeviceCommandInfo *commandInfoList, size_t listSize);
|
||
|
~DeviceCommandEnumerator();
|
||
|
|
||
|
HRESULT Next(ifc_devicesupportedcommand **buffer, size_t bufferMax, size_t *count);
|
||
|
HRESULT Reset(void);
|
||
|
HRESULT Skip(size_t count);
|
||
|
HRESULT GetCount(size_t *count);
|
||
|
REFERENCE_COUNT_IMPLEMENTATION;
|
||
|
|
||
|
private:
|
||
|
size_t position;
|
||
|
DeviceCommand **commands;
|
||
|
size_t count;
|
||
|
RECVS_DISPATCH;
|
||
|
};
|