Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
3.0 KiB

  1. //#--------------------------------------------------------------
  2. //
  3. // File: langchange.h
  4. //
  5. // Synopsis: This file holds the declarations of the
  6. // CLangChange class
  7. //
  8. //
  9. // History: 05/24/2000 BalajiB Created
  10. //
  11. // Copyright (C) 1999-2000 Microsoft Corporation
  12. // All rights reserved.
  13. //
  14. //#--------------------------------------------------------------
  15. #ifndef _LANGCHANGE_H_
  16. #define _LANGCHANGE_H_
  17. #include "stdafx.h"
  18. #include "salangchange.h"
  19. #include "satrace.h"
  20. //
  21. // declaration of CLangChange class
  22. //
  23. class CLangChange : public ISALangChange
  24. {
  25. public:
  26. //
  27. // constructor
  28. //
  29. CLangChange() : m_lRef(0),
  30. m_hWnd(NULL)
  31. {}
  32. //
  33. // destructor cleans up resources
  34. //
  35. ~CLangChange() {}
  36. //
  37. // IUnknown members
  38. //
  39. STDMETHODIMP QueryInterface(REFIID, LPVOID *);
  40. STDMETHODIMP_(ULONG) AddRef(void);
  41. STDMETHODIMP_(ULONG) Release(void);
  42. //
  43. // IDispatch interface - not implemented
  44. //
  45. STDMETHODIMP GetTypeInfoCount(
  46. /*[out]*/ UINT __RPC_FAR *pctinfo
  47. )
  48. {
  49. return E_NOTIMPL;
  50. }
  51. STDMETHODIMP GetTypeInfo(
  52. /* [in] */ UINT iTInfo,
  53. /* [in] */ LCID lcid,
  54. /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo
  55. )
  56. {
  57. return E_NOTIMPL;
  58. }
  59. STDMETHODIMP GetIDsOfNames(
  60. /* [in] */ REFIID riid,
  61. /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
  62. /* [in] */ UINT cNames,
  63. /* [in] */ LCID lcid,
  64. /* [size_is][out] */ DISPID __RPC_FAR *rgDispId
  65. )
  66. {
  67. return E_NOTIMPL;
  68. }
  69. STDMETHODIMP Invoke(
  70. /* [in] */ DISPID dispIdMember,
  71. /* [in] */ REFIID riid,
  72. /* [in] */ LCID lcid,
  73. /* [in] */ WORD wFlags,
  74. /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
  75. /* [out] */ VARIANT __RPC_FAR *pVarResult,
  76. /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
  77. /* [out] */ UINT __RPC_FAR *puArgErr
  78. )
  79. {
  80. return E_NOTIMPL;
  81. }
  82. STDMETHODIMP InformChange(
  83. /*[in]*/ BSTR bstrLangDisplayName,
  84. /*[in]*/ BSTR bstrLangISOName,
  85. /*[in]*/ unsigned long ulLangID
  86. );
  87. //
  88. // method provided by class so that CDisplayWorker::Initialize
  89. // can set the I/O completion port handle to be used by
  90. // InformChange()
  91. //
  92. void OnLangChangeCallback(HWND hWnd)
  93. {
  94. m_hWnd = hWnd;
  95. }
  96. void ClearCallback(void)
  97. {
  98. m_hWnd = NULL;
  99. }
  100. private:
  101. LONG m_lRef;
  102. HWND m_hWnd;
  103. };
  104. #endif // _LANGCHANGE_H_