templatelt; クラス ライセンス>
CComClassFactory2 クラス: 公共の CComClassFactory2Base、 ライセンス
パラメーター
ライセンス
次の静的関数を実装するクラス:
CComClassFactory2を実装して、 IClassFactory2インターフェイスは、拡張の IClassFactory。IClassFactory2コントロール オブジェクトの作成、ライセンスを。クラス ファクトリをライセンスのマシン上で実行、実行時のライセンス キーを提供できます。このライセンス ・ キーを用いたマシン ライセンスが存在しないときにオブジェクトをインスタンス化すると、アプリケーションことができます。
ATL オブジェクト通常CComCoClassから派生することによって、クラス ファクトリを取得します。このクラスには、 DECLARE_CLASSFACTORY CComClassFactoryとして、既定のクラス ファクトリの宣言、マクロが含まれます。CComClassFactory2を使用するには、 DECLARE_CLASSFACTORY2マクロをオブジェクトのクラス定義で指定します。たとえば:
cMyClass クラス:.. は、公共の CComCoClasslt;… >{パブリック。DECLARE_CLASSFACTORY2(CMyLicense)...}
CMyLicenseは、 CComClassFactory2、テンプレート パラメーターは静的関数VerifyLicenseKey、 GetLicenseKey、およびIsLicenseValidを実装する必要があります。以下は、単純なライセンス クラスの例です。:
cMyLicense をクラスします。{保護。特価;静的 BOOL VerifyLicenseKey(BSTR bstr){USES_CONVERSION;返す ! lstrcmp(OLE2T(bstr)、_T (私ランタイム ライセンス キー));}静的 BOOL GetLicenseKey(DWORD dwReserved, BSTR* pBstr) {USES_CONVERSION;※ pBstr = SysAllocString (T2OLE (_T (私ランタイム ライセンス キー)));TRUE を返す;}静的の BOOL IsLicenseValid() {return TRUE;}}(&N)
CComClassFactory2は、 CComClassFactory2Baseとライセンスの両方から派生します。CComClassFactory2Base、順番に、 IClassFactory2とCComObjectRootExlt から派生;CComGlobalsThreadModel >。
#include lt;atlcom.h>
参照特価;CComClassFactoryAutoThread、 CComClassFactorySingleton、 CComObjectRootEx、 CComGlobalsThreadModel(&N)