本文整理汇总了C++中microsoft::wrl::ComPtr::GetTriColorFragmentProvider方法的典型用法代码示例。如果您正苦于以下问题:C++ ComPtr::GetTriColorFragmentProvider方法的具体用法?C++ ComPtr::GetTriColorFragmentProvider怎么用?C++ ComPtr::GetTriColorFragmentProvider使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类microsoft::wrl::ComPtr
的用法示例。
在下文中一共展示了ComPtr::GetTriColorFragmentProvider方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Navigate
IFACEMETHODIMP CTriColorFragmentProvider::Navigate(_In_ NavigateDirection direction, _Outptr_result_maybenull_ IRawElementProviderFragment ** retVal)
{
*retVal = nullptr;
ComPtr<IInspectable> spFragment;
HRESULT hr = CheckDisconnected();
if (SUCCEEDED(hr))
{
if (direction == NavigateDirection_Parent)
{
hr = m_control->GetTriColorControlProvider(&spFragment);
}
else if (direction == NavigateDirection_NextSibling)
{
if (!TriColorValueHelper::IsLast(m_value))
{
hr = m_control->GetTriColorFragmentProvider(TriColorValueHelper::NextValue(m_value), &spFragment);
}
}
else if (direction == NavigateDirection_PreviousSibling)
{
if (!TriColorValueHelper::IsFirst(m_value))
{
hr = m_control->GetTriColorFragmentProvider(TriColorValueHelper::PreviousValue(m_value), &spFragment);
}
}
}
if (SUCCEEDED(hr) && spFragment != nullptr)
{
hr = spFragment.Get()->QueryInterface(IID_PPV_ARGS(retVal));
}
// For the other directions (first child, last child) the default of nullptr is correct
return hr;
}
示例2: Navigate
IFACEMETHODIMP CTriColorControlProvider::Navigate(_In_ NavigateDirection direction, _Outptr_result_maybenull_ IRawElementProviderFragment ** retVal)
{
*retVal = nullptr;
ComPtr<IInspectable> spFragment;
HRESULT hr = CheckDisconnected();
if (SUCCEEDED(hr))
{
if (direction == NavigateDirection_Parent)
{
hr = m_control->GetAppWindowProvider(&spFragment);
}
else if (direction == NavigateDirection_FirstChild)
{
hr = m_control->GetTriColorFragmentProvider(TriColorValue::Red, &spFragment);
}
else if (direction == NavigateDirection_LastChild)
{
hr = m_control->GetTriColorFragmentProvider(TriColorValue::Green, &spFragment);
}
}
if (SUCCEEDED(hr) && spFragment != nullptr)
{
hr = spFragment.Get()->QueryInterface(IID_PPV_ARGS(retVal));
}
// For the other directions (next, previous) the default of nullptr is correct
return hr;
}
示例3: GetSelection
IFACEMETHODIMP CTriColorControlProvider::GetSelection(_Outptr_result_maybenull_ SAFEARRAY * *retVal)
{
*retVal = nullptr;
HRESULT hr = CheckDisconnected();
if (SUCCEEDED(hr))
{
TriColorValue controlValue;
hr = m_control->get_ControlValue(&controlValue);
if (SUCCEEDED(hr))
{
ComPtr<IInspectable> spFragmentProvider;
hr = m_control->GetTriColorFragmentProvider(controlValue, &spFragmentProvider);
if (SUCCEEDED(hr))
{
*retVal = SafeArrayCreateVector(VT_UNKNOWN, 0, 1);
if (*retVal != nullptr)
{
long index = 0;
hr = SafeArrayPutElement(*retVal, &index, spFragmentProvider.Get());
if (FAILED(hr))
{
SafeArrayDestroy(*retVal);
*retVal = nullptr;
}
}
else
{
hr = E_OUTOFMEMORY;
}
}
}
}
return hr;
}