⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wiadriver.h

📁 winddk src目录下的WDM源码压缩!
💻 H
📖 第 1 页 / 共 2 页
字号:

    STDMETHOD(GetLastErrorInfo)(THIS_ STI_ERROR_INFO *pLastErrorInfo);

    /////////////////////////////////////////////////////////////////////////
    // IWiaMiniDrv Interface Section (for all WIA drivers)                 //
    /////////////////////////////////////////////////////////////////////////

    STDMETHOD(drvInitializeWia)(THIS_
                                __inout BYTE        *pWiasContext,
                                        LONG        lFlags,
                                __in    BSTR        bstrDeviceID,
                                __in    BSTR        bstrRootFullItemName,
                                __in    IUnknown    *pStiDevice,
                                __in    IUnknown    *pIUnknownOuter,
                                __out   IWiaDrvItem **ppIDrvItemRoot,
                                __out   IUnknown    **ppIUnknownInner,
                                __out   LONG        *plDevErrVal);

    STDMETHOD(drvAcquireItemData)(THIS_
                                  __in      BYTE                      *pWiasContext,
                                            LONG                      lFlags,
                                  __in      PMINIDRV_TRANSFER_CONTEXT pmdtc,
                                  __out     LONG                      *plDevErrVal);

    STDMETHOD(drvInitItemProperties)(THIS_
                                     __inout    BYTE *pWiasContext,
                                                LONG lFlags,
                                     __out      LONG *plDevErrVal);

    STDMETHOD(drvValidateItemProperties)(THIS_
                                         __inout    BYTE           *pWiasContext,
                                                    LONG           lFlags,
                                                    ULONG          nPropSpec,
                                         __in       const PROPSPEC *pPropSpec,
                                         __out      LONG           *plDevErrVal);

    STDMETHOD(drvWriteItemProperties)(THIS_
                                      __inout   BYTE                      *pWiasContext,
                                                LONG                      lFlags,
                                      __in      PMINIDRV_TRANSFER_CONTEXT pmdtc,
                                      __out     LONG                      *plDevErrVal);

    STDMETHOD(drvReadItemProperties)(THIS_
                                     __in       BYTE           *pWiasContext,
                                                LONG           lFlags,
                                                ULONG          nPropSpec,
                                     __in       const PROPSPEC *pPropSpec,
                                     __out      LONG           *plDevErrVal);

    STDMETHOD(drvLockWiaDevice)(THIS_
                                __in    BYTE *pWiasContext,
                                        LONG lFlags,
                                __out   LONG *plDevErrVal);

    STDMETHOD(drvUnLockWiaDevice)(THIS_
                                  __in      BYTE *pWiasContext,
                                            LONG lFlags,
                                  __out     LONG *plDevErrVal);

    STDMETHOD(drvAnalyzeItem)(THIS_
                              __in      BYTE *pWiasContext,
                                        LONG lFlags,
                              __out     LONG *plDevErrVal);

    STDMETHOD(drvGetDeviceErrorStr)(THIS_
                                              LONG     lFlags,
                                              LONG     lDevErrVal,
                                    __out     LPOLESTR *ppszDevErrStr,
                                    __out     LONG     *plDevErr);

    STDMETHOD(drvDeviceCommand)(THIS_
                                __inout     BYTE            *pWiasContext,
                                            LONG            lFlags,
                                __in        const GUID      *plCommand,
                                __out       IWiaDrvItem     **ppWiaDrvItem,
                                __out       LONG            *plDevErrVal);

    STDMETHOD(drvGetCapabilities)(THIS_
                                  __in      BYTE            *pWiasContext,
                                            LONG            ulFlags,
                                  __out     LONG            *pcelt,
                                  __out     WIA_DEV_CAP_DRV **ppCapabilities,
                                  __out     LONG            *plDevErrVal);

    STDMETHOD(drvDeleteItem)(THIS_
                             __inout    BYTE *pWiasContext,
                                        LONG lFlags,
                             __out      LONG *plDevErrVal);

    STDMETHOD(drvFreeDrvItemContext)(THIS_
                                     LONG lFlags,
                                     __in       BYTE *pSpecContext,
                                     __out      LONG *plDevErrVal);

    STDMETHOD(drvGetWiaFormatInfo)(THIS_
                                   __in     BYTE            *pWiasContext,
                                            LONG            lFlags,
                                   __out    LONG            *pcelt,
                                   __out    WIA_FORMAT_INFO **ppwfi,
                                   __out    LONG            *plDevErrVal);

    STDMETHOD(drvNotifyPnpEvent)(THIS_
                                 __in   const GUID *pEventGUID,
                                 __in   BSTR       bstrDeviceID,
                                        ULONG      ulReserved);

    STDMETHOD(drvUnInitializeWia)(THIS_ __inout BYTE *pWiasContext);

public:

    /////////////////////////////////////////////////////////////////////////
    // INonDelegating Interface Section (for all WIA drivers)              //
    /////////////////////////////////////////////////////////////////////////

    STDMETHODIMP NonDelegatingQueryInterface(REFIID  riid,LPVOID  *ppvObj);
    STDMETHODIMP_(ULONG) NonDelegatingAddRef();
    STDMETHODIMP_(ULONG) NonDelegatingRelease();

private:

    /////////////////////////////////////////////////////////////////////////
    // Minidriver private methods specific Section                         //
    /////////////////////////////////////////////////////////////////////////

    UINT GetBitmapResourceIDFromCategory(const GUID &guidItemCategory);

    HRESULT DownloadToStream(           LONG                           lFlags,
                             __in       BYTE                           *pWiasContext,
                             __in       PMINIDRV_TRANSFER_CONTEXT      pmdtc,
                                        const GUID                     &guidItemCategory,
                                        const GUID                     &guidFormatID,
                             __callback IWiaMiniDrvTransferCallback    *pTransferCallback,
                             __out      LONG                           *plDevErrVal);

    HRESULT DownloadRawHeader(__in      IStream                       *pDestination,
                              __inout   BYTE                          *pWiasContext,
                              __in      PMINIDRV_TRANSFER_CONTEXT     pmdtc);

    HRESULT UploadFromStream(           LONG                           lFlags,
                             __in       BYTE                           *pWiasContext,
                                        const GUID                     &guidItemCategory,
                             __callback IWiaMiniDrvTransferCallback    *pTransferCallback,
                             __out      LONG                           *plDevErrVal);

    HRESULT LegacyDownload(LONG                      lFlags,
                           BYTE                      *pWiasContext,
                           const GUID                &guidItemCategory,
                           PMINIDRV_TRANSFER_CONTEXT pmdtc,
                           LONG                      *plDevErrVal);

    HRESULT BuildDriverItemTree();

    HRESULT DestroyDriverItemTree();

    HRESULT DoSynchronizeCommand(__inout BYTE *pWiasContext);

};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -