home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2000 April
/
VPR0004A.BIN
/
OLS
/
SADKT100
/
sadkt100.lzh
/
SariAddin.h
< prev
next >
Wrap
C/C++ Source or Header
|
1999-12-31
|
3KB
|
105 lines
/*========================================================================
SariAddin.h
SARIはISariAddinインターフェースを介して、アドインプログラムを組み込み
ます。
そのためISariAddinのUUIDは既定値を使います。これはSari_i.hをインクル
ードすることにより組み込まれます。
しかしCLSIDは独自のものを作成しなければなりません。CLSIDを作成するに
は、VC++ではGuidgen.exeを使います。Guiden.exeはDevStudio\VC\Binか、
Program Files\Microsoft Visual Stadio\Common\Toolsなどといったディレク
トリにあるはずです。
Guidgen.exeでは4つの形式を選択できます。ここでは上から2番目、DEFINE_
GUID()形式を選択してください。作成したら、コピーアンドペーストで、クラ
ス定義の前に張りつけ、<<Name>>の部分をCLSID_SariAddinに書き換えます。
(下記に作成例が書いてあります)
最後にISariAddinを公開しなければなりません。
すなわち、ATLを使用してプロジェクトを作成しているなら、DllMainが記載さ
れたファイル(プロジェクトがTestなら、Test.cpp)に、
BEGIN_OBJECT_MAP(ObjectMap)
-----なにか記述があるかも----------------。
END_OBJECT_MAP()
という部分があるはずです。
ここにエントリを付け加え、下記のようにします。
BEGIN_OBJECT_MAP(ObjectMap)
-----なにか記述があるかも----------------。
OBJECT_ENTRY(CLSID_SariAddin, CSariAddin)
END_OBJECT_MAP()
そしてそのファイルにこのヘッダファイル(SariAddin.h)をインクルードしてお
いてください。
=========================================================================*/
#ifndef __SARIADDIN_H_
#define __SARIADDIN_H_
#include "resource.h" // メイン シンボル
#include "Sari_i.h"
// シンクオブジェクトをもつクラスの定義をインクルードしてください。
// ここではそれがCSinkであると仮定し、Sink.hをインクルードしています。
#include "Sink.h"
/*-------------------------------------------------------------------------
これは例です。
必ずGuidgen.exeで独自のクラスIDを作成してください。
<<NAME>>部分を下例のようにCLSID_SariAddinにします。
// {94AD03C0-83F1-11d3-8FFE-0090CC001E1E}
DEFINE_GUID(CLSID_SariAddin,
0x94ad03c0, 0x83f1, 0x11d3, 0x8f, 0xfe, 0x0, 0x90, 0xcc, 0x0, 0x1e, 0x1e);
-------------------------------------------------------------------------*/
/////////////////////////////////////////////////////////////////////////////
// CSariAddin
class CAPL;
class ATL_NO_VTABLE CSariAddin :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CSariAddin, &CLSID_SariAddin>,
public ISupportErrorInfo,
public ISariAddin
{
public:
CSariAddin()
{
m_dwCookie=0;
m_pSink=NULL;
}
DECLARE_REGISTRY(CSariAddin, "SomeProj.SariAddin.1",
"SomeProj", IDS_SOMEPROJ_LONGNAME,
THREADFLAGS_APARTMENT)
DECLARE_NOT_AGGREGATABLE(CSariAddin)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CSariAddin)
COM_INTERFACE_ENTRY(ISariAddin)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
// ISariAddin
public:
STDMETHOD(OnDisconnection)(/*[in]*/VARIANT_BOOL bLastTime);
STDMETHOD(OnConnection)(/*[in]*/ISRAPL *pApl, /*[in]*/long lFlag, /*[in]*/long lCookie, /*[out]*/VARIANT_BOOL *pbResult);
DWORD m_dwCookie;
CComObject<CSink> *m_pSink;
};
#endif //__SARIADDIN_H_