inpobj.cpp
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 2k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #include "priv.h"
  2. #include "inpobj.h"
  3. #define DM_FOCUS        0   // focus stuff
  4. #define DM_FOCUS2       0   // like DM_FOCUS, but verbose
  5. //***   IInputObject {
  6. HRESULT UnkHasFocusIO(IUnknown *punkThis)
  7. {
  8.     HRESULT hres = E_FAIL;
  9.     if (punkThis != NULL) {
  10.         IInputObject *pio;
  11.         hres = punkThis->QueryInterface(IID_IInputObject, (LPVOID*)&pio);
  12.         if (SUCCEEDED(hres)) {
  13.             hres = pio->HasFocusIO();
  14.             pio->Release();
  15.         }
  16.     }
  17.     if (hres != S_OK)
  18.         TraceMsg(DM_FOCUS2, "hfio hres=%x (!=S_OK)", hres);
  19.     return hres;
  20. }
  21. HRESULT UnkTranslateAcceleratorIO(IUnknown *punkThis, MSG* pmsg)
  22. {
  23.     HRESULT hres = E_FAIL;
  24.     if (punkThis != NULL) {
  25.         IInputObject *pio;
  26.         hres = punkThis->QueryInterface(IID_IInputObject, (LPVOID*)&pio);
  27.         if (SUCCEEDED(hres)) {
  28.             hres = pio->TranslateAcceleratorIO(pmsg);
  29.             pio->Release();
  30.         }
  31.     }
  32.     return hres;
  33. }
  34. HRESULT UnkUIActivateIO(IUnknown *punkThis, BOOL fActivate, LPMSG lpMsg)
  35. {
  36.     HRESULT hres = E_FAIL;
  37.     if (punkThis != NULL) {
  38.         IInputObject *pio;
  39.         hres = punkThis->QueryInterface(IID_IInputObject, (LPVOID*)&pio);
  40.         if (SUCCEEDED(hres)) {
  41.             hres = pio->UIActivateIO(fActivate, lpMsg);
  42.             pio->Release();
  43.         }
  44.     }
  45.     if (FAILED(hres))
  46.         TraceMsg(DM_FOCUS2, "uiaio(fActivate=%d) hres=%x (FAILED)", fActivate, hres);
  47.     return hres;
  48. }
  49. // }
  50. //***   IInputObjectSite {
  51. HRESULT UnkOnFocusChangeIS(IUnknown *punkThis, IUnknown *punkSrc, BOOL fSetFocus)
  52. {
  53.     HRESULT hres = E_FAIL;
  54.     if (punkThis != NULL) {
  55.         IInputObjectSite *pis;
  56.         hres = punkThis->QueryInterface(IID_IInputObjectSite, (LPVOID*)&pis);
  57.         if (SUCCEEDED(hres)) {
  58.             hres = pis->OnFocusChangeIS(punkSrc, fSetFocus);
  59.             pis->Release();
  60.         }
  61.     }
  62.     if (FAILED(hres))
  63.         TraceMsg(DM_FOCUS, "ofcis(punk=%x fSetFocus=%d) hres=%x (FAILED)", punkSrc, fSetFocus, hres);
  64.     return hres;
  65. }
  66. // }