ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

sti.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2009 Damjan Jovanovic
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 #ifndef __WINE_STI_H
00020 #define __WINE_STI_H
00021 
00022 #include <objbase.h>
00023 /* #include <stireg.h> */
00024 /* #include <stierr.h> */
00025 
00026 #include <pshpack8.h>
00027 
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031 
00032 DEFINE_GUID(CLSID_Sti, 0xB323F8E0L, 0x2E68, 0x11D0, 0x90, 0xEA, 0x00, 0xAA, 0x00, 0x60, 0xF8, 0x6C);
00033 
00034 DEFINE_GUID(IID_IStillImageW, 0x641BD880, 0x2DC8, 0x11D0, 0x90, 0xEA, 0x00, 0xAA, 0x00, 0x60, 0xF8, 0x6C);
00035 
00036 DEFINE_GUID(IID_IStillImageA, 0xA7B1F740, 0x1D7F, 0x11D1, 0xAC, 0xA9, 0x00, 0xA0, 0x24, 0x38, 0xAD, 0x48);
00037 
00038 #define STI_VERSION_REAL         0x00000002
00039 #define STI_VERSION_FLAG_UNICODE 0x01000000
00040 
00041 #ifndef WINE_NO_UNICODE_MACROS
00042 # ifdef UNICODE
00043 #  define STI_VERSION (STI_VERSION_REAL | STI_VERSION_FLAG_UNICODE)
00044 # else
00045 #  define STI_VERSION (STI_VERSION_REAL)
00046 # endif
00047 #endif
00048 
00049 typedef struct IStillImageA *PSTIA;
00050 typedef struct IStillImageW *PSTIW;
00051 DECL_WINELIB_TYPE_AW(PSTI)
00052 typedef struct IStillImageA *LPSTILLIMAGEA;
00053 typedef struct IStillImageW *LPSTILLIMAGEW;
00054 DECL_WINELIB_TYPE_AW(LPSTILLIMAGE)
00055 typedef struct IStiDeviceA *PSTIDEVICEA;
00056 typedef struct IStiDeviceW *PSTIDEVICEW;
00057 DECL_WINELIB_TYPE_AW(PSTIDEVICE)
00058 
00059 HRESULT WINAPI StiCreateInstanceA(HINSTANCE hinst, DWORD dwVer, PSTIA *ppSti, LPUNKNOWN pUnkOuter);
00060 HRESULT WINAPI StiCreateInstanceW(HINSTANCE hinst, DWORD dwVer, PSTIW *ppSti, LPUNKNOWN pUnkOuter);
00061 #define        StiCreateInstance WINELIB_NAME_AW(StiCreateInstance)
00062 
00063 typedef DWORD STI_DEVICE_TYPE;
00064 typedef enum _STI_DEVICE_MJ_TYPE
00065 {
00066     StiDeviceTypeDefault           = 0,
00067     StiDeviceTypeScanner           = 1,
00068     StiDeviceTypeDigitalCamera     = 2,
00069     StiDeviceTypeStreamingVideo    = 3
00070 } STI_DEVICE_MJ_TYPE;
00071 
00072 #define GET_STIDEVICE_TYPE(dwDevType) HIWORD(dwDevType)
00073 #define GET_STIDEVICE_SUBTYPE(dwDevType) LOWORD(dwDevType)
00074 
00075 typedef struct _STI_DEV_CAPS {
00076     DWORD dwGeneric;
00077 } STI_DEV_CAPS, *PSTI_DEV_CAPS;
00078 
00079 #define STI_MAX_INTERNAL_NAME_LENGTH 128
00080 
00081 typedef struct _STI_DEVICE_INFORMATIONW {
00082     DWORD dwSize;
00083     STI_DEVICE_TYPE DeviceType;
00084     WCHAR szDeviceInternalName[STI_MAX_INTERNAL_NAME_LENGTH];
00085     STI_DEV_CAPS DeviceCapabilities;
00086     DWORD dwHardwareConfiguration;
00087     LPWSTR pszVendorDescription;
00088     LPWSTR pszDeviceDescription;
00089     LPWSTR pszPortName;
00090     LPWSTR pszPropProvider;
00091     LPWSTR pszLocalName;
00092 } STI_DEVICE_INFORMATIONW, *PSTI_DEVICE_INFORMATIONW;
00093 
00094 typedef STI_DEVICE_INFORMATIONW STI_DEVICE_INFORMATION;
00095 typedef PSTI_DEVICE_INFORMATIONW PSTI_DEVICE_INFORMATION;
00096 
00097 #define MAX_NOTIFICATION_DATA 64
00098 
00099 typedef struct _STINOTIFY {
00100     DWORD dwSize;
00101     GUID guidNotificationCode;
00102     BYTE abNotificationData[MAX_NOTIFICATION_DATA];
00103 } STINOTIFY,*LPSTINOTIFY;
00104 
00105 #define INTERFACE IStillImageW
00106 DECLARE_INTERFACE_(IStillImageW, IUnknown)
00107 {
00108     /*** IUnknown methods ***/
00109     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00110     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00111     STDMETHOD_(ULONG,Release)(THIS) PURE;
00112     /*** IStillImageW methods ***/
00113     STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
00114     STDMETHOD(GetDeviceList)(THIS_ DWORD dwType, DWORD dwFlags, DWORD *pdwItemsReturned, LPVOID *ppBuffer) PURE;
00115     STDMETHOD(GetDeviceInfo)(THIS_ LPWSTR pwszDeviceName, LPVOID *ppBuffer) PURE;
00116     STDMETHOD(CreateDevice)(THIS_ LPWSTR pwszDeviceName, DWORD dwMode, PSTIDEVICEW *pDevice, LPUNKNOWN pUnkOuter) PURE;
00117     STDMETHOD(GetDeviceValue)(THIS_ LPWSTR pwszDeviceName, LPWSTR pValueName, LPDWORD pType, LPBYTE pData, LPDWORD cbData) PURE;
00118     STDMETHOD(SetDeviceValue)(THIS_ LPWSTR pwszDeviceName, LPWSTR pValueName, DWORD type, LPBYTE pData, DWORD cbData) PURE;
00119     STDMETHOD(GetSTILaunchInformation)(THIS_ LPWSTR pwszDeviceName, DWORD *pdwEventCode, LPWSTR pwszEventName) PURE;
00120     STDMETHOD(RegisterLaunchApplication)(THIS_ LPWSTR pwszAppName, LPWSTR pwszCommandLine) PURE;
00121     STDMETHOD(UnregisterLaunchApplication)(THIS_ LPWSTR pwszAppName) PURE;
00122     STDMETHOD(EnableHwNotifications)(THIS_ LPCWSTR pwszDeviceName, BOOL bNewState) PURE;
00123     STDMETHOD(GetHwNotificationState)(THIS_ LPCWSTR pwszDeviceName, BOOL *pbCurrentState) PURE;
00124     STDMETHOD(RefreshDeviceBus)(THIS_ LPCWSTR pwszDeviceName) PURE;
00125     STDMETHOD(LaunchApplicationForDevice)(THIS_ LPWSTR pwszDeviceName, LPWSTR pwszAppName, LPSTINOTIFY pStiNotify);
00126     STDMETHOD(SetupDeviceParameters)(THIS_ PSTI_DEVICE_INFORMATIONW pDevInfo);
00127     STDMETHOD(WriteToErrorLog)(THIS_ DWORD dwMessageType, LPCWSTR pszMessage) PURE;
00128 };
00129 #undef INTERFACE
00130 
00131 #if !defined(__cplusplus) || defined(CINTERFACE)
00132 /*** IUnknown methods ***/
00133 #define IStillImage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00134 #define IStillImage_AddRef(p)             (p)->lpVtbl->AddRef(p)
00135 #define IStillImage_Release(p)            (p)->lpVtbl->Release(p)
00136 /*** IStillImage methods ***/
00137 #define IStillImage_Initialize(p,a,b)                   (p)->lpVtbl->Initialize(p,a,b)
00138 #define IStillImage_GetDeviceList(p,a,b,c,d)            (p)->lpVtbl->GetDeviceList(p,a,b,c,d)
00139 #define IStillImage_GetDeviceInfo(p,a,b)                (p)->lpVtbl->GetDeviceInfo(p,a,b)
00140 #define IStillImage_CreateDevice(p,a,b,c,d)             (p)->lpVtbl->CreateDevice(p,a,b,c,d)
00141 #define IStillImage_GetDeviceValue(p,a,b,c,d,e)         (p)->lpVtbl->GetDeviceValue(p,a,b,c,d,e)
00142 #define IStillImage_SetDeviceValue(p,a,b,c,d,e)         (p)->lpVtbl->SetDeviceValue(p,a,b,c,d,e)
00143 #define IStillImage_GetSTILaunchInformation(p,a,b,c)    (p)->lpVtbl->GetSTILaunchInformation(p,a,b,c)
00144 #define IStillImage_RegisterLaunchApplication(p,a,b)    (p)->lpVtbl->RegisterLaunchApplication(p,a,b)
00145 #define IStillImage_UnregisterLaunchApplication(p,a)    (p)->lpVtbl->UnregisterLaunchApplication(p,a)
00146 #define IStillImage_EnableHwNotifications(p,a,b)        (p)->lpVtbl->EnableHwNotifications(p,a,b)
00147 #define IStillImage_GetHwNotificationState(p,a,b)       (p)->lpVtbl->GetHwNotificationState(p,a,b)
00148 #define IStillImage_RefreshDeviceBus(p,a)               (p)->lpVtbl->RefreshDeviceBus(p,a)
00149 #define IStillImage_LaunchApplicationForDevice(p,a,b,c) (p)->lpVtbl->LaunchApplicationForDevice(p,a,b,c)
00150 #define IStillImage_SetupDeviceParameters(p,a)          (p)->lpVtbl->SetupDeviceParameters(p,a)
00151 #define IStillImage_WriteToErrorLog(p,a,b)              (p)->lpVtbl->WriteToErrorLog(p,a,b)
00152 #else
00153 /*** IUnknown methods ***/
00154 #define IStillImage_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00155 #define IStillImage_AddRef(p)             (p)->AddRef()
00156 #define IStillImage_Release(p)            (p)->Release()
00157 /*** IStillImage methods ***/
00158 #define IStillImage_Initialize(p,a,b)                   (p)->Initialize(a,b)
00159 #define IStillImage_GetDeviceList(p,a,b,c,d)            (p)->GetDeviceList(a,b,c,d)
00160 #define IStillImage_GetDeviceInfo(p,a,b)                (p)->GetDeviceInfo(a,b)
00161 #define IStillImage_CreateDevice(p,a,b,c,d)             (p)->CreateDevice(a,b,c,d)
00162 #define IStillImage_GetDeviceValue(p,a,b,c,d,e)         (p)->GetDeviceValue(a,b,c,d,e)
00163 #define IStillImage_SetDeviceValue(p,a,b,c,d,e)         (p)->SetDeviceValue(a,b,c,d,e)
00164 #define IStillImage_GetSTILaunchInformation(p,a,b,c)    (p)->GetSTILaunchInformation(a,b,c)
00165 #define IStillImage_RegisterLaunchApplication(p,a,b)    (p)->RegisterLaunchApplication(a,b)
00166 #define IStillImage_UnregisterLaunchApplication(p,a)    (p)->UnregisterLaunchApplication(a)
00167 #define IStillImage_EnableHwNotifications(p,a,b)        (p)->EnableHwNotifications(a,b)
00168 #define IStillImage_GetHwNotificationState(p,a,b)       (p)->GetHwNotificationState(a,b)
00169 #define IStillImage_RefreshDeviceBus(p,a)               (p)->RefreshDeviceBus(a)
00170 #define IStillImage_LaunchApplicationForDevice(p,a,b,c) (p)->LaunchApplicationForDevice(a,b,c)
00171 #define IStillImage_SetupDeviceParameters(p,a)          (p)->SetupDeviceParameters(a)
00172 #define IStillImage_WriteToErrorLog(p,a,b)              (p)->WriteToErrorLog(a,b)
00173 #endif
00174 
00175 #ifdef __cplusplus
00176 }
00177 #endif
00178 
00179 #include <poppack.h>
00180 
00181 #endif /* __WINE_STI_H */

Generated on Sat May 26 2012 04:31:12 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.