summaryrefslogtreecommitdiff
path: root/wia/wiadriverex/usd/wiacapabilitymanager.h
blob: ed199ff8bb2bb29acab0c96bb49749441c5cb610 (plain)
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
/*****************************************************************************
 *
 *  wiacapabilitymanager.h
 *
 *  Copyright (c) 2003 Microsoft Corporation.  All Rights Reserved.
 *
 *  DESCRIPTION:
 *
 *  Contains class declaration for CWIACapabilityManager
 *  
 *******************************************************************************/

#pragma once

#define MAX_CAPABILITY_STRING_SIZE_BYTES (sizeof(WCHAR) * MAX_PATH)

class CWIACapabilityManager {
public:
    CWIACapabilityManager();
    ~CWIACapabilityManager();
public:
    HRESULT Initialize(_In_ HINSTANCE hInstance);
    void Destroy();
    HRESULT AddCapability(const GUID    guidCapability,
                          UINT          uiNameResourceID,
                          UINT          uiDescriptionResourceID,
                          ULONG         ulFlags,
                          _In_ LPWSTR   wszIcon);
    HRESULT DeleteCapability(const GUID guidCapability,ULONG ulFlags);
    HRESULT AllocateCapability(_Out_ WIA_DEV_CAP_DRV **ppWIADeviceCapability);
    void FreeCapability(_In_ WIA_DEV_CAP_DRV *pWIADeviceCapability, BOOL bFreeCapabilityContentOnly = FALSE);
    LONG GetNumCapabilities();
    LONG GetNumCommands();
    LONG GetNumEvents();

    WIA_DEV_CAP_DRV* GetCapabilities();
    WIA_DEV_CAP_DRV* GetCommands();
    WIA_DEV_CAP_DRV* GetEvents();
private:
    HINSTANCE                            m_hInstance;
    CBasicDynamicArray<WIA_DEV_CAP_DRV> m_CapabilityArray;
};