windows-nt/Source/XPSP1/NT/net/tapi/skywalker/inc/promptedobjectsafety.h
2020-09-26 16:20:57 +08:00

76 lines
1.9 KiB
C++

#ifndef _TAPI_PROMPTED_OBJECT_SAFETY_H_
#define _TAPI_PROMPTED_OBJECT_SAFETY_H_
/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
PromptedObjectSafety.h
Abstract:
abstract base class for secure object safety mechanism
calls the derived class's Ask() method to determine
whether safe for scripting request should be rejected
--*/
#include "ObjectSafeImpl.h"
class CPromptedObjectSafety : public CObjectSafeImpl
{
public:
STDMETHOD(SetInterfaceSafetyOptions)(REFIID riid,
DWORD dwOptionSetMask,
DWORD dwEnabledOptions)
{
if ( SUCCEEDED(InterfaceSupported(riid)) && Ask() )
{
return CObjectSafeImpl::SetInterfaceSafetyOptions(riid,
dwOptionSetMask,
dwEnabledOptions);
}
else
{
return E_FAIL;
}
}
STDMETHOD(GetInterfaceSafetyOptions)(REFIID riid,
DWORD *pdwSupportedOptions,
DWORD *pdwEnabledOptions)
{
if (SUCCEEDED(InterfaceSupported(riid)) && Ask())
{
return CObjectSafeImpl::GetInterfaceSafetyOptions(riid,
pdwSupportedOptions,
pdwEnabledOptions);
}
else
{
return E_FAIL;
}
}
//
// implement Ask() in the derived class. Should contain the logic to make
// the decision on whether the control should be allowed to run
//
// return FALSE if you want to mark your control as not safe for scripting
// return TRUE otherwise
//
virtual BOOL Ask() = 0;
};
#endif // _TAPI_PROMPTED_OBJECT_SAFETY_H_