inpobj.cpp
资源名称:shell.rar [点击查看]
上传用户:xhy777
上传日期:2007-02-14
资源大小:24088k
文件大小:2k
源码类别:
系统编程
开发平台:
Visual C++
- #include "priv.h"
- #include "inpobj.h"
- #define DM_FOCUS 0 // focus stuff
- #define DM_FOCUS2 0 // like DM_FOCUS, but verbose
- //*** IInputObject {
- HRESULT UnkHasFocusIO(IUnknown *punkThis)
- {
- HRESULT hres = E_FAIL;
- if (punkThis != NULL) {
- IInputObject *pio;
- hres = punkThis->QueryInterface(IID_IInputObject, (LPVOID*)&pio);
- if (SUCCEEDED(hres)) {
- hres = pio->HasFocusIO();
- pio->Release();
- }
- }
- if (hres != S_OK)
- TraceMsg(DM_FOCUS2, "hfio hres=%x (!=S_OK)", hres);
- return hres;
- }
- HRESULT UnkTranslateAcceleratorIO(IUnknown *punkThis, MSG* pmsg)
- {
- HRESULT hres = E_FAIL;
- if (punkThis != NULL) {
- IInputObject *pio;
- hres = punkThis->QueryInterface(IID_IInputObject, (LPVOID*)&pio);
- if (SUCCEEDED(hres)) {
- hres = pio->TranslateAcceleratorIO(pmsg);
- pio->Release();
- }
- }
- return hres;
- }
- HRESULT UnkUIActivateIO(IUnknown *punkThis, BOOL fActivate, LPMSG lpMsg)
- {
- HRESULT hres = E_FAIL;
- if (punkThis != NULL) {
- IInputObject *pio;
- hres = punkThis->QueryInterface(IID_IInputObject, (LPVOID*)&pio);
- if (SUCCEEDED(hres)) {
- hres = pio->UIActivateIO(fActivate, lpMsg);
- pio->Release();
- }
- }
- if (FAILED(hres))
- TraceMsg(DM_FOCUS2, "uiaio(fActivate=%d) hres=%x (FAILED)", fActivate, hres);
- return hres;
- }
- // }
- //*** IInputObjectSite {
- HRESULT UnkOnFocusChangeIS(IUnknown *punkThis, IUnknown *punkSrc, BOOL fSetFocus)
- {
- HRESULT hres = E_FAIL;
- if (punkThis != NULL) {
- IInputObjectSite *pis;
- hres = punkThis->QueryInterface(IID_IInputObjectSite, (LPVOID*)&pis);
- if (SUCCEEDED(hres)) {
- hres = pis->OnFocusChangeIS(punkSrc, fSetFocus);
- pis->Release();
- }
- }
- if (FAILED(hres))
- TraceMsg(DM_FOCUS, "ofcis(punk=%x fSetFocus=%d) hres=%x (FAILED)", punkSrc, fSetFocus, hres);
- return hres;
- }
- // }
English
