Windows Mobile 2003 Second Edition における ActiveSync プログラミング モデルの拡張

March, 2004

Microsoft Corporation

適用対象

Windows Mobile™ 2003 Second Edition Software for Pocket PC
Windows Mobile™ 2003 Second Edition Software for Smartphone
Microsoft® ActiveSync® 3.7.1以降

要約 : この記事は、開発者が ActiveSync 同期サービス プロバイダを変更して、新しいユーザ対話を処理する方法について、詳しく説明するものです。

トピック

はじめに はじめに
インターフェイスの詳しい説明 インターフェイスの詳しい説明
まとめ まとめ

はじめに

同期サービス プロバイダ (SSP) に、新しいインターフェイスが追加されました。追加されたインターフェイスは、同期サービス プロバイダとユーザとの対話の促進に役立ちます。OnSSPEnable および OnSSPDisable は、ユーザがオプション ダイアログ内の使用可能なチェックボックスをクリックしたときに、SSP が対応できるようにします。これは、複数の SSP が互いに対話する場合や、SSP が使用可能または使用不可に設定され、別のプロセスに通知する必要がある場合に役立ちます。
 

IReplStore 2 インターフェイスは、どのような場合でも SSP が設定ダイアログを表示できるようにします。SSP にこのインターフェイスが実装されていない場合は、オプション ダイアログの表示前に SSP が使用可能に設定されなければ、ActiveSync は設定を表示しません。

上記のインターフェイスは、ActiveSync バージョン 3.7.1 以降で使用可能です。

インターフェイスの詳しい説明

OnSSPEnable
これは、SSP からエクスポートできる新しい関数です。この関数は、ActiveSync のオプション ダイアログで SSP が使用可能に設定された時に、呼び出されます。

この関数は、次のように使用します。

HRESULT WINAPI OnSSPEnable (HWND hwndParent); 

•    hwndParent : この関数が呼び出されたときに、SSP が表示する任意のダイアログ ボックスの親として使用する HWND。戻り値 : ActiveSync エンジンは、戻り値を処理しません。この関数からは、S_OK が戻されます。

備考 : OnSSPEnable が呼び出された時点で、IReplStore::Initialize 関数が呼ばれていないことがあるので、IReplStore::Initialize の呼び出しに依存するような内部変数は使用しないでください。

この関数がエクスポートされる.def ファイルの例

LIBRARY      "STSYNC"
EXPORTS
       DllCanUnloadNow   PRIVATE
       DllGetClassObject PRIVATE
       DllRegisterServer PRIVATE
       DllUnregisterServer PRIVATE
       OnSSPEnable
       OnSSPDisable
OnSSPDisable

これは、SSP からエクスポートできる新しい関数です。この関数は、ActiveSync オプション ダイアログで SSP が使用不可に設定された時に呼び出されます。

この関数は、次のように使用します。

HRESULT  WINAPI OnSSPDisable (HWND hwndParent); 
  •     hwndParent : この関数が呼び出されたときに、SSP が表示する任意のダイアログ ボックスの親として使用するHWND。

  •     戻り値 : ActiveSyncエンジンは、戻り値を処理しません。この関数からは、S_OK が戻されます。

備考 : OnSSPEnable が呼び出された時点で、IReplStore::Initialize 関数が呼ばれていないことがあるので、IReplStore::Initialize の呼び出しに依存するような内部変数は使用しないでください。

この関数がエクスポートされる.defファイルの例

LIBRARY      "STSYNC"
EXPORTS
       DllCanUnloadNow   PRIVATE
       DllGetClassObject PRIVATE
       DllRegisterServer PRIVATE
       DllUnregisterServer PRIVATE
       OnSSPEnable
       OnSSPDisable
IReplStore2

これは、IReplStore から派生した新しいインターフェイスです。IReplStore は、SSP が使用可能に設定される前でも設定ダイアログを表示できるようにします。

このインターフェイスは、次のように定義します。

//
//=========== IReplStore2 ==============
//
DEFINE_GUID (IID_IReplStore2,            // 4a696d00-f75f-11d2-b549-00c04f5b9a11
    0x4a696d00,
    0xf75f,
    0x11d2,
    0xb5, 0x49, 0x00, 0xc0, 0x4f, 0x5b, 0x9a, 0x11
);
#undef  INTERFACE
#define INTERFACE   IReplStore2
DECLARE_INTERFACE_( IReplStore2, IReplStore )
{
    // *** IReplStore2 methods ***
    // UI related routines
    STDMETHOD(DoOptionsDialog)
          ( THIS_ HWND hwndParent, LPCSTR lpszObjType,
           IReplNotify * pntfy) PURE;
};
  •     hwndParent : この関数が呼び出されたときに、SSP が表示する任意のダイアログ ボックスの親として使用する HWND。

  •     lpszObjType : 設定を表示するフォルダの名前。

  •     Pntfy : IReplNotify へのポインタ。

  •     戻り値 : この関数は、次のいずれかの値を戻します。

NOERROR      User selected OK to save the changes
RERR_CANCEL      User selected Cancel

備考 : OnSSPEnable が呼び出された時点で、IReplStore::Initialize 関数が呼ばれていないことがあるので、IReplStore::Initialize の呼び出しに依存するような内部変数は使用しないでください。

このインターフェイスを使用するには、SSP がバージョン 3 になっている必要があります。SSP を登録すると、HKEY CLASSES ROOT\{prog id} の下に、0 x 00030000 という値を持つ「Version」という名前の DWORD レジストリ値が作成されます。

[HKEY_CLASSES_ROOT\MS.WinCE.StockPor2]
@="StockPor"
"Display Name"="Stock Sample"
"Version"=dword:00030000

IReplStore 2 インターフェイスは、新しい cesync.h ヘッダの中で定義されます。cesync.h ヘッダは、Developer Resources for Windows Mobile 2003 Second Edition の中に含まれています。

まとめ

IReplStore 2 インターフェイスは、同期サービス プロバイダが使用可能または使用不可に設定された場合に、開発者がユーザにより明確に示すことができるようにするものです。この機能はすべての同期サービス プロバイダに必要なものではありませんので、このインターフェイスは必ずしも実装する必要はありません。