2025-11-28 00:35:46 +09:00

88 lines
2.6 KiB
C++

// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved
#pragma once
//+---------------------------------------------------------------------------
//
// CDisplayAttributeInfo class
//
//----------------------------------------------------------------------------
class CDisplayAttributeInfo : public ITfDisplayAttributeInfo
{
public:
CDisplayAttributeInfo();
~CDisplayAttributeInfo();
// IUnknown
STDMETHODIMP QueryInterface(REFIID riid, _Outptr_ void **ppvObj);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// ITfDisplayAttributeInfo
STDMETHODIMP GetGUID(_Out_ GUID *pguid);
STDMETHODIMP GetDescription(_Out_ BSTR *pbstrDesc);
STDMETHODIMP GetAttributeInfo(_Out_ TF_DISPLAYATTRIBUTE *pTSFDisplayAttr);
STDMETHODIMP SetAttributeInfo(_In_ const TF_DISPLAYATTRIBUTE *ptfDisplayAttr);
STDMETHODIMP Reset();
protected:
const GUID* _pguid;
const TF_DISPLAYATTRIBUTE* _pDisplayAttribute;
const WCHAR* _pDescription;
const WCHAR* _pValueName;
private:
LONG _refCount; // COM ref count
};
//+---------------------------------------------------------------------------
//
// CDisplayAttributeInfoInput class
//
//----------------------------------------------------------------------------
class CDisplayAttributeInfoInput : public CDisplayAttributeInfo
{
public:
CDisplayAttributeInfoInput()
{
_pguid = &Global::SampleIMEGuidDisplayAttributeInput;
_pDisplayAttribute = &_s_DisplayAttribute;
_pDescription = _s_szDescription;
_pValueName = _s_szValueName;
}
static const TF_DISPLAYATTRIBUTE _s_DisplayAttribute;
static const WCHAR _s_szDescription[];
static const WCHAR _s_szValueName[];
};
//+---------------------------------------------------------------------------
//
// CDisplayAttributeInfoConverted class
//
//----------------------------------------------------------------------------
class CDisplayAttributeInfoConverted : public CDisplayAttributeInfo
{
public:
CDisplayAttributeInfoConverted()
{
_pguid = &Global::SampleIMEGuidDisplayAttributeConverted;
_pDisplayAttribute = &_s_DisplayAttribute;
_pDescription = _s_szDescription;
_pValueName = _s_szValueName;
}
static const TF_DISPLAYATTRIBUTE _s_DisplayAttribute;
static const WCHAR _s_szDescription[];
static const WCHAR _s_szValueName[];
};