111 lines
1.8 KiB
C++
111 lines
1.8 KiB
C++
|
#ifndef _W3HANDLER_HXX_
|
||
|
#define _W3HANDLER_HXX_
|
||
|
|
||
|
class W3_HANDLER
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
W3_HANDLER( W3_CONTEXT * pW3Context,
|
||
|
META_SCRIPT_MAP_ENTRY * pScriptMapEntry = NULL )
|
||
|
{
|
||
|
DBG_ASSERT( pW3Context != NULL );
|
||
|
_pW3Context = pW3Context;
|
||
|
_pScriptMapEntry = pScriptMapEntry;
|
||
|
}
|
||
|
|
||
|
virtual ~W3_HANDLER()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
virtual
|
||
|
WCHAR *
|
||
|
QueryName(
|
||
|
VOID
|
||
|
) = 0;
|
||
|
|
||
|
virtual
|
||
|
BOOL
|
||
|
QueryIsUlCacheable(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
virtual
|
||
|
BOOL
|
||
|
QueryManagesOwnHead(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
virtual
|
||
|
HRESULT
|
||
|
SetupUlCachedResponse(
|
||
|
W3_CONTEXT * pW3Context
|
||
|
)
|
||
|
{
|
||
|
return NO_ERROR;
|
||
|
}
|
||
|
|
||
|
virtual
|
||
|
CONTEXT_STATUS
|
||
|
DoWork(
|
||
|
VOID
|
||
|
) = 0;
|
||
|
|
||
|
virtual
|
||
|
CONTEXT_STATUS
|
||
|
OnCompletion(
|
||
|
DWORD cbCompletion,
|
||
|
DWORD dwCompletionStatus
|
||
|
)
|
||
|
{
|
||
|
return CONTEXT_STATUS_CONTINUE;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Non-virtual member functions
|
||
|
//
|
||
|
|
||
|
CONTEXT_STATUS
|
||
|
MainDoWork(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
CONTEXT_STATUS
|
||
|
MainOnCompletion(
|
||
|
DWORD cbCompletion,
|
||
|
DWORD dwCompletionStatus
|
||
|
);
|
||
|
|
||
|
W3_CONTEXT *
|
||
|
QueryW3Context(
|
||
|
VOID
|
||
|
) const
|
||
|
{
|
||
|
return _pW3Context;
|
||
|
}
|
||
|
|
||
|
META_SCRIPT_MAP_ENTRY *
|
||
|
QueryScriptMapEntry(
|
||
|
VOID
|
||
|
) const
|
||
|
{
|
||
|
return _pScriptMapEntry;
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
W3_CONTEXT * _pW3Context;
|
||
|
META_SCRIPT_MAP_ENTRY * _pScriptMapEntry;
|
||
|
};
|
||
|
|
||
|
#define IS_ACCESS_ALLOWED(pRequest, dwFilePerms, op) \
|
||
|
((dwFilePerms & VROOT_MASK_## op) && \
|
||
|
((!(dwFilePerms & VROOT_MASK_NO_REMOTE_## op)) || \
|
||
|
pRequest->IsLocalRequest()))
|
||
|
|
||
|
#endif
|