ICopyHookA::CopyCallback メソッド (shlobj.h)

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

構文

UINT CopyCallback(
  HWND  hwnd,
  UINT  wFunc,
  UINT  wFlags,
  PCSTR pszSrcFile,
  DWORD dwSrcAttribs,
  PCSTR pszDestFile,
  DWORD dwDestAttribs
);

パラメーター

hwnd

コピー フック ハンドラーが、ハンドラーが表示する必要があるユーザー インターフェイス要素の親として使用する必要があるウィンドウへのハンドル。 wFuncFOF_SILENTが指定されている場合、メソッドはこのパラメーターを無視する必要があります。

wFunc

実行する操作。 このパラメーターには、SHFILEOPSTRUCT 構造体の wFunc メンバーの下にリストされている値のいずれかを指定できます。

wFlags

操作を制御するフラグ。 このパラメーターには、SHFILEOPSTRUCT 構造体の fFlags メンバーの下にリストされている 1 つ以上の値を指定できます。

プリンター コピー フックの場合、この値は Shellapi.h で定義されている次のいずれかの値です。

説明
PO_DELETE プリンターが削除されています。 pszSrcFile は 、指定されたプリンターへの完全パスを指します。
PO_RENAME プリンターの名前が変更されています。 pszSrcFile パラメーターは、プリンターの新しい名前を指します。 pszDestFile パラメーターは古い名前を指します。
PO_PORTCHANGE サポートされていません。 使用しないでください。
PO_REN_PORT サポートされていません。 使用しないでください。

pszSrcFile

ソース フォルダーの名前を含む文字列へのポインター。

dwSrcAttribs

ソース フォルダーの属性。 このパラメーターには、ヘッダー ファイルで定義されている任意のファイル属性フラグ (FILE_ATTRIBUTE_*) の組み合わせを指定できます。 「ファイル属性定数」を参照してください。

pszDestFile

コピー先フォルダーの名前を含む文字列へのポインター。

dwDestAttribs

移動先フォルダーの属性。 このパラメーターには、ヘッダー ファイルで定義されている任意のファイル属性フラグ (FILE_ATTRIBUTE_*) の組み合わせを指定できます。 「ファイル属性定数」を参照してください。

戻り値

シェルが操作を実行する必要があるかどうかを示す整数値を返します。 次のいずれかになります。

説明
IDYES 操作を許可します。
IDNO このフォルダーに対する操作を禁止しますが、承認されたその他の操作 (バッチ コピー操作など) を続行します。
IDCANCEL 現在の操作を禁止し、保留中の操作を取り消します。

注釈

シェルは、すべてのハンドラーが呼び出されるまで、またはいずれかのハンドラーが IDNO または IDCANCEL を返すまで、フォルダーまたはプリンター オブジェクトに登録されている各コピー フック ハンドラーを呼び出します。

フォルダーのコピー フック ハンドラーは、次のキーの下に登録されます。

HKEY_CLASSES_ROOT/Directory/Shellex/CopyHookHandlers/your_copyhook/{copyhook CLSID value}

プリンターのコピー フック ハンドラーは、次のキーの下に登録されます。

HKEY_CLASSES_ROOT/Printers/Shellex/CopyHookHandlers/your_copyhook/{copyhook CLSID value}

このメソッドが呼び出されると、最初に IShellExtInit インターフェイスを使用せずに、シェルによって ICopyHookA インターフェイスが直接初期化されます。

要件

要件
Header shlobj.h