First commit.
This commit is contained in:
commit
7b83802bb2
103 files changed
+19016
No files matched your search
@@ -0,0 +1,128 @@
|
||||
// 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
|
||||
|
||||
#include "private.h"
|
||||
#include "TipCandidateString.h"
|
||||
|
||||
HRESULT CTipCandidateString::CreateInstance(_Outptr_ CTipCandidateString **ppobj)
|
||||
{
|
||||
if (ppobj == nullptr)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
*ppobj = nullptr;
|
||||
|
||||
*ppobj = new (std::nothrow) CTipCandidateString();
|
||||
if (*ppobj == nullptr)
|
||||
{
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CTipCandidateString::CreateInstance(REFIID riid, _Outptr_ void **ppvObj)
|
||||
{
|
||||
if (ppvObj == nullptr)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
*ppvObj = nullptr;
|
||||
|
||||
*ppvObj = new (std::nothrow) CTipCandidateString();
|
||||
if (*ppvObj == nullptr)
|
||||
{
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
return ((CTipCandidateString*)(*ppvObj))->QueryInterface(riid, ppvObj);
|
||||
}
|
||||
|
||||
CTipCandidateString::CTipCandidateString(void)
|
||||
{
|
||||
_refCount = 0;
|
||||
_index = 0;
|
||||
}
|
||||
|
||||
CTipCandidateString::~CTipCandidateString()
|
||||
{
|
||||
}
|
||||
|
||||
// IUnknown methods
|
||||
STDMETHODIMP CTipCandidateString::QueryInterface(REFIID riid, _Outptr_ void **ppvObj)
|
||||
{
|
||||
if (ppvObj == nullptr)
|
||||
{
|
||||
return E_POINTER;
|
||||
}
|
||||
*ppvObj = nullptr;
|
||||
|
||||
if (IsEqualIID(riid, IID_IUnknown))
|
||||
{
|
||||
*ppvObj = (CTipCandidateString*)this;
|
||||
}
|
||||
else if (IsEqualIID(riid, IID_ITfCandidateString))
|
||||
{
|
||||
*ppvObj = (CTipCandidateString*)this;
|
||||
}
|
||||
|
||||
if (*ppvObj == nullptr)
|
||||
{
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
AddRef();
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP_(ULONG) CTipCandidateString::AddRef(void)
|
||||
{
|
||||
return (ULONG)InterlockedIncrement((LONG*)&_refCount);
|
||||
}
|
||||
|
||||
STDMETHODIMP_(ULONG) CTipCandidateString::Release(void)
|
||||
{
|
||||
ULONG refT = (ULONG)InterlockedDecrement((LONG*)&_refCount);
|
||||
if (0 < refT)
|
||||
{
|
||||
return refT;
|
||||
}
|
||||
|
||||
delete this;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ITfCandidateString methods
|
||||
STDMETHODIMP CTipCandidateString::GetString(BSTR *pbstr)
|
||||
{
|
||||
*pbstr = SysAllocString(_candidateStr.c_str());
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CTipCandidateString::GetIndex(_Out_ ULONG *pnIndex)
|
||||
{
|
||||
if (pnIndex == nullptr)
|
||||
{
|
||||
return E_POINTER;
|
||||
}
|
||||
|
||||
*pnIndex = _index;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CTipCandidateString::SetIndex(ULONG uIndex)
|
||||
{
|
||||
_index = uIndex;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP CTipCandidateString::SetString(_In_ const WCHAR *pch, DWORD_PTR length)
|
||||
{
|
||||
_candidateStr.assign(pch, 0, length);
|
||||
return S_OK;
|
||||
}
|
||||
Reference in new issue
Block a user