アンマネージ NTFS プロバイダ サンプル

NTFSProvider サンプルでは、C++ を使用して、ファイル フォルダ内のファイルを同期する同期プロバイダの実装方法を示しています。単純にするために、このサンプルではサブフォルダを処理しません。

Security noteセキュリティメモ :

このサンプル コードは、概念をわかりやすく説明するために提供されています。安全なコーディングのベスト プラクティスに従っているとは限りません。そのため、このサンプル コードをアプリケーションや Web サイトで使用することは避けてください。サンプル コードが意図しない目的で使用された場合、付随的または間接的な損害について Microsoft は一切責任を負いません。

ファイルの場所

このサンプルのファイルは、Sync Framework のインストール ディレクトリに格納されています。既定の場所は、C:\Program Files (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\NTFSSample です。

内容

このサンプルは、2 つのプロジェクトから成る Microsoft Visual Studio ソリューションです。

  • NTFSProvider : 同期プロバイダの実装

  • SampleTest : 簡単な同期アプリケーション

ファイル

NTFSProvider プロジェクトには、次のファイルが含まれています。

ソース ファイル 説明

MetadataStore.h、MetadataStore.cpp

サンプルで使用されるヘルパ クラス。同期メタデータをファイル システムに保存する目的で使用されます。

MyStore.h、MyStore.cpp

同期プロバイダのクラス。同期に参加するために必要な IKnowledgeSyncProviderISyncProviderISynchronousDataRetriever、および ISynchronousNotifyingChangeApplierTarget を実装します。

MyTransferMechanism.h、MyTransferMechanism.cpp

ファイル ストリームをカプセル化し、IUnknown を実装するクラス。同期時には、このクラスのインスタンスがプロバイダ間で受け渡され、実際のファイル データをコピーする目的で使用されます。

SampleTest プロジェクトには、次のファイルが含まれています。

ソース ファイル 説明

SyncController.h、SyncController.cpp

同期セッション オブジェクトを作成およびホストするクラス。このクラスは、ISyncCallback も実装し、セッション オブジェクトから同期イベントを受け取るための登録を行います。

SyncMain.cpp

アプリケーションのエントリ ポイント。コマンド ラインを解析し、プロバイダとコントローラ オブジェクトをインスタンス化して、これらすべてのインスタンスを相互に接続し、同期を開始します。

インターフェイス

このサンプルでは、次に示す Sync Framework インターフェイスの使用例を紹介しています。

IKnowledgeSyncProvider

IEnumSyncChanges

ISyncProvider

ISyncChange

ISynchronousDataRetriever

IForgottenKnowledge

ISynchronousNotifyingChangeApplierTarget

ISynchronousNotifyingChangeApplier

ISyncCallback

ILoadChangeContext

ISyncKnowledge

ISaveChangeContext

ISyncChangeBatch

IApplicationSyncServices

IProviderSyncServices

ISyncSession

必要条件

このサンプルをビルドおよび実行するには、次のソフトウェアがインストールされている必要があります。

  • Microsoft Visual Studio 2005 または Visual Studio 2008

サンプルのビルド

Visual Studio を使用してサンプルをビルドするには

  1. NTFSProvider.sln ファイルを開きます。

  2. [ビルド] メニューの [ソリューションのビルド] をクリックします。

サンプルの実行

SampleTest.exe を実行するには

  1. ルート フォルダに、Folder1 と Folder2 という 2 つのフォルダを作成します。

  2. フォルダに、テキスト ファイルなどのコンテンツを追加します。Folder1 と Folder2 のコンテンツが異なっていることを確認してください。

  3. コマンド プロンプトでサンプルを実行するには、コマンド プロンプト ウィンドウを開いて、SampleTest.exe が格納されているフォルダに移動します。コマンド プロンプトに「SampleTest.exe C:\Folder1 C:\Folder2」と入力します。

  4. Visual Studio でサンプルを実行するには、SampleTest プロジェクトの [プロパティ ページ] を開きます。[デバッグ] の [コマンド ライン引数] フィールドに、「C:\Folder1 C:\Folder2」と入力します。[デバッグ] メニューの [デバッグ開始] をクリックします。

  5. サンプルの実行後は、Folder1 と Folder2 に、まったく同じファイルが格納されています。これらのフォルダには、同期メタデータを含んだファイル (Knowledge.Sync、Metadata.Sync、Replica.Sync、および TickCount.Sync) も格納されます。

参照

概念

Sync Framework のコア コンポーネント

その他のリソース

カスタム データ同期サンプル