summaryrefslogtreecommitdiff
path: root/wia/inc/WiaCI.h
blob: 4f8e117b1b0604665f7f380c8c6a85e0b034b1e7 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*******************************************************************************
*
*  (C) COPYRIGHT MICROSOFT CORP., 2000-2003
*
*
*  PUBLISHED TITLE : WiaCI.h
*
*  VERSION:     1.0
*
*  AUTHOR:      KeisukeT
*
*  DATE:        11 Mar, 2003
*
*  DESCRIPTION:
*  Header file for class installer exports.
*
*******************************************************************************/




#ifndef _DEVMGR_H_
#define _DEVMGR_H_


//
// Include
//
#include <objbase.h>

//
// Define
//

#define WIA_DEVSEARCH_DRVKEY        0x00000001
#define WIA_DEVSEARCH_DEVICEDATA    0x00000002


#define MAX_FRIENDLYNAME        64
#define MAX_DEVICE_ID           64

//
// Struct
//

typedef struct _WIADEVICEINSTALL {
 IN     DWORD dwSize;                           // Size of the structure.
 IN     DWORD dwFlags;                          // Reserved, must be 0.
 IN     WCHAR szInfPath[MAX_PATH];              // Full path to the INF file.
 IN     WCHAR szPnPID[MAX_PATH];                // PnP ID string for INF install.
 IN     WCHAR szIhvID[MAX_PATH];                // IHV unique ID, will be in DeviceData.
 IN OUT WCHAR szFriendlyName[MAX_FRIENDLYNAME]; // Specify name, result will be stored too.
    OUT WCHAR szWiaDeviceID[MAX_DEVICE_ID];     // WIA Device ID upon successful install.
 } WIADEVICEINSTALL, *PWIADEVICEINSTALL;


//
// Prototype
//

DWORD
WINAPI
InstallWiaDevice(
    _In_ PWIADEVICEINSTALL pWiaDeviceInstall
    );

DWORD
WINAPI
UninstallWiaDevice(
    _In_ HANDLE  hWiaDeviceList,
         DWORD   dwIndex
    );

DWORD
WINAPI
CreateWiaDeviceList(
                                       DWORD   dwFlags,    
    _In_opt_                           LPCWSTR szQueryEntry,
    _In_reads_bytes_(dwQueryParameterSize)  PVOID   pvQueryParameter,
                                       DWORD   dwQueryParameterSize,
    _Out_opt_                          HANDLE  *phWiaDeviceList
    );

DWORD
WINAPI
DestroyWiaDeviceList(
    _In_ HANDLE  hWiaDeviceList
    );

DWORD
WINAPI
GetWiaDeviceProperty(
    _In_            HANDLE  hWiaDeviceList,
                    DWORD   dwIndex,
                    DWORD   dwFlags,
    _In_opt_        LPCWSTR szEntry,
    _Out_opt_       LPDWORD pdwType,
    _Out_opt_       PVOID   pvBuffer,
    _Inout_opt_     LPDWORD pdwBufferSize
    );

DWORD
WINAPI
SetWiaDeviceProperty(
    _In_ HANDLE  hWiaDeviceList,
    DWORD   dwIndex,
    DWORD   dwFlags,
    _In_opt_ LPCWSTR szEntry,
    DWORD   dwType,
    _In_reads_bytes_(dwBufferSize) PVOID   pvBuffer,
    DWORD   dwBufferSize
    );

DWORD
WINAPI
EnableWiaDevice(
    _In_ HANDLE  hWiaDeviceList,
         DWORD   dwIndex
    );


DWORD
WINAPI
DisableWiaDevice(
    _In_ HANDLE  hWiaDeviceList,
         DWORD   dwIndex
    );


#endif // _DEVMGR_H_