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

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

継承

ICopyHookA インターフェイスは、IUnknown インターフェイスから継承されます。

メソッド

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

 
ICopyHookA::CopyCallback

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

注釈

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

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

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

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

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

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

Note

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

要件

   
ヘッダー shlobj.h