次の方法で共有


ICopyHookW インターフェイス (shlobj.h)

コピー フック ハンドラーを作成するメソッドを公開します。 コピー フック ハンドラーは、シェル フォルダーまたはプリンター オブジェクトを移動、コピー、名前変更、または削除できるかどうかを決定するシェル拡張機能です。 シェルは、これらの操作のいずれかを実行する前に、ICopyHookW::CopyCallback メソッドを呼び出します。

継承

ICopyHookW インターフェイスは、IUnknown インターフェイスから継承します。

メソッド

ICopyHookW インターフェイスには、これらのメソッドがあります。

 
ICopyHookW::CopyCallback

シェルでフォルダーまたはプリンター オブジェクトの移動、コピー、削除、または名前変更を許可するかどうかを指定します。 (Unicode)

備考

OLE インプロセス サーバー (dll) であるコピー フック ハンドラーは、タスク自体を実行しませんが、アクションを承認または不承認にします。 シェルは、コピー フック ハンドラーから承認を受け取ると、ファイル システム操作を実行します。 コピー フック ハンドラーには操作の成功が通知されないため、FindFirstChangeNotification を使用 場合を除き、フォルダー オブジェクトに対して実行されたアクションを監視することはできません。

フォルダー オブジェクトには、複数のコピー フック ハンドラーを含めることができます。 たとえば、シェルに特定のフォルダー オブジェクトのコピー フック ハンドラーが既に登録されている場合でも、独自のハンドラーを登録できます。 オブジェクトに対して複数のコピー フック ハンドラーが登録されている場合、シェルは、指定されたファイル システム操作のいずれかを実行する前に、それぞれを呼び出します。

シェルは、IShellExtInit インターフェイスを最初に使用せずに、ICopyHookA 直接初期化します。

CopyCallback は、シェルが操作を実行する必要があるかどうかを示す int 値を返します。 シェルは、すべてのハンドラーが呼び出されるまで、またはいずれかのハンドラーが IDYES 以外の値を返すまで、フォルダー オブジェクトに登録されている各コピー フック ハンドラーを呼び出します。 ハンドラーは、操作を実行する必要があることを指定する IDYES を返し、操作を中止するように指定する IDNO または IDCANCEL を返します。

特定のオブジェクトに対してこれらのファイル システム操作をいつ、または実行するかを制御できるようにする場合は、コピー フック ハンドラーを実装します。 たとえば、共有フォルダーでコピー フック ハンドラーを使用できます。

このシェル拡張機能は直接呼び出しません。 CopyCallback は、シェル フォルダー オブジェクトの移動、コピー、削除、または名前変更の前にシェルによって呼び出されます。

手記

shlobj.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ICopyHook を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
ヘッダー shlobj.h