📄 asp.h
字号:
[!if=(FreeThreadedMarshaler, "TRUE")]
[!set(NeedsGetControllingUnknown, "TRUE")]
[!endif]
// [!HeaderName] : Declaration of the [!ClassName]
[!crlf]
[!if=(FileExists, "FALSE")]
#ifndef __[!UpperShortName]_H_
#define __[!UpperShortName]_H_
[!crlf]
#include "resource.h" // main symbols
#include <asptlb.h> // Active Server Pages Definitions
[!else]
[!AddIncludeFile(TargetFile, "resource.h")]
[!AddIncludeFile(TargetFile, "<asptlb.h>")]
[!endif]
[!crlf]
/////////////////////////////////////////////////////////////////////////////
// [!ClassName]
class ATL_NO_VTABLE [!ClassName] :
[!if=(ThreadingModel, "Single")]
public CComObjectRootEx<CComSingleThreadModel>,
[!endif]
[!if=(ThreadingModel, "Apartment")]
public CComObjectRootEx<CComSingleThreadModel>,
[!endif]
[!if=(ThreadingModel, "Both")]
public CComObjectRootEx<CComMultiThreadModel>,
[!endif]
[!if=(ThreadingModel, "Free")]
public CComObjectRootEx<CComMultiThreadModel>,
[!endif]
public CComCoClass<[!ClassName], &CLSID_[!CoClassName]>,
[!if=(ErrorInfoEnabled, "TRUE")]
public ISupportErrorInfo,
[!endif]
[!if=(ConnectionPointsEnabled, "TRUE")]
public IConnectionPointContainerImpl<[!ClassName]>,
[!endif]
[!if=(Dual, "TRUE")]
public IDispatchImpl<[!InterfaceName], &IID_[!InterfaceName], &LIBID_[!LibName]>
[!else]
public [!InterfaceName]
[!endif]
{
public:
[!ClassName]()
{
[!if=(FreeThreadedMarshaler, "TRUE")] m_pUnkMarshaler = NULL;[!endif]
[!if=(OnStartPage, "TRUE")] m_bOnStartPageCalled = FALSE;[!endif]
}
[!crlf]
public:
[!crlf]
DECLARE_REGISTRY_RESOURCEID([!IDR_REGISTRYID])
[!crlf]
DECLARE_PROTECT_FINAL_CONSTRUCT()
[!if=(Aggregatable, "NO")]
DECLARE_NOT_AGGREGATABLE([!ClassName])
[!endif]
[!if=(Aggregatable, "ONLY")]
DECLARE_ONLY_AGGREGATABLE([!ClassName])
[!endif]
[!if=(NeedsGetControllingUnknown, "TRUE")]
DECLARE_GET_CONTROLLING_UNKNOWN()
[!endif]
[!crlf]
BEGIN_COM_MAP([!ClassName])
COM_INTERFACE_ENTRY([!InterfaceName])
[!if=(Dual, "TRUE")]
COM_INTERFACE_ENTRY(IDispatch)
[!endif]
[!if=(ErrorInfoEnabled, "TRUE")]
COM_INTERFACE_ENTRY(ISupportErrorInfo)
[!endif]
[!if=(ConnectionPointsEnabled, "TRUE")]
COM_INTERFACE_ENTRY(IConnectionPointContainer)
[!endif]
[!if=(FreeThreadedMarshaler, "TRUE")]
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p)
[!endif]
END_COM_MAP()
[!if=(ConnectionPointsEnabled, "TRUE")]
[!crlf]
BEGIN_CONNECTION_POINT_MAP([!ClassName])
END_CONNECTION_POINT_MAP()
[!crlf]
[!endif]
[!if=(FreeThreadedMarshaler, "TRUE")]
[!crlf]
HRESULT FinalConstruct()
{
return CoCreateFreeThreadedMarshaler(
GetControllingUnknown(), &m_pUnkMarshaler.p);
}
[!crlf]
void FinalRelease()
{
m_pUnkMarshaler.Release();
}
[!crlf]
CComPtr<IUnknown> m_pUnkMarshaler;
[!endif]
[!if=(ErrorInfoEnabled, "TRUE")]
[!crlf]
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
[!endif]
[!crlf]
// [!InterfaceName]
public:
[!if=(OnStartPage, "TRUE")]
//Active Server Pages Methods
STDMETHOD(OnStartPage)(IUnknown* IUnk);
STDMETHOD(OnEndPage)();
[!crlf]
private:
[!if=(Request, "TRUE")]
CComPtr<IRequest> m_piRequest; //Request Object
[!endif]
[!if=(Response, "TRUE")]
CComPtr<IResponse> m_piResponse; //Response Object
[!endif]
[!if=(Session, "TRUE")]
CComPtr<ISessionObject> m_piSession; //Session Object
[!endif]
[!if=(Server, "TRUE")]
CComPtr<IServer> m_piServer; //Server Object
[!endif]
[!if=(Application, "TRUE")]
CComPtr<IApplicationObject> m_piApplication; //Application Object
[!endif]
BOOL m_bOnStartPageCalled; //OnStartPage successful?
[!endif]
};
[!crlf]
[!if=(FileExists, "FALSE")]
#endif //__[!UpperShortName]_H_
[!endif]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -