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

43 lines
1.7 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
SAFEARRAY * BuildIntSafeArray(_In_reads_(length) const int * data, _In_ int length);
// A Class representing the top level frame of the AnnotatedTextControl
class CleanShutdownProvider : public IRawElementProviderSimple,
public IToggleProvider
{
public:
CleanShutdownProvider(_In_ HWND hwnd, _In_ UiaCleanShutdownControl *control);
virtual ~CleanShutdownProvider();
// IUnknown methods
ULONG STDMETHODCALLTYPE AddRef();
ULONG STDMETHODCALLTYPE Release();
HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _Outptr_ void**ppInterface);
// IRawElementProviderSimple methods
HRESULT STDMETHODCALLTYPE get_ProviderOptions(_Out_ ProviderOptions * retVal);
HRESULT STDMETHODCALLTYPE GetPatternProvider(PATTERNID iid, _Outptr_result_maybenull_ IUnknown * * retVal );
HRESULT STDMETHODCALLTYPE GetPropertyValue(PROPERTYID idProp, _Out_ VARIANT * retVal );
HRESULT STDMETHODCALLTYPE get_HostRawElementProvider(_Outptr_result_maybenull_ IRawElementProviderSimple ** retVal );
// IToggleProvider methods
HRESULT STDMETHODCALLTYPE Toggle();
HRESULT STDMETHODCALLTYPE get_ToggleState (_Out_ ToggleState * pRetVal );
private:
// Ref Counter for this COM object
ULONG _refCount;
// Internal Implementation Stuff;
HWND _hwnd; // The HWND for this object
UiaCleanShutdownControl *_control;
};