SHChangeNotify 関数 (shlobj_core.h)

アプリケーションが実行したイベントをシステムに通知します。 アプリケーションがシェルに影響を与える可能性のあるアクションを実行する場合は、この関数を使用する必要があります。

構文

void SHChangeNotify(
                 LONG    wEventId,
                 UINT    uFlags,
  [in, optional] LPCVOID dwItem1,
  [in, optional] LPCVOID dwItem2
);

パラメーター

wEventId

型: LONG

発生したイベントについて説明します。 通常、一度に指定されるイベントは 1 つだけです。 複数のイベントが指定されている場合、 dwItem1 パラメーターと dwItem2 パラメーターに含まれる値は、指定されたすべてのイベントでそれぞれ同じである必要があります。 このパラメーターには、次の値のうち 1 つ以上を指定できます。

SHCNE_ALLEVENTS

すべてのイベントが発生しました。

SHCNE_ASSOCCHANGED

ファイルの種類の関連付けが変更されました。 SHCNF_IDLISTuFlags パラメーターで指定する必要があります。 dwItem1dwItem2 は使用されず、 NULL である必要があります。 このイベントは、登録済みのプロトコルにも送信する必要があります。

SHCNE_ATTRIBUTES

アイテムまたはフォルダーの属性が変更されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、変更されたアイテムまたはフォルダーが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_CREATE

フォルダー以外のアイテムが作成されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、作成された項目が含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_DELETE

フォルダー以外のアイテムが削除されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、削除されたアイテムが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_DRIVEADD

ドライブが追加されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、追加されたドライブのルートが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_DRIVEADDGUI

Windows XP 以降: 使用されていません。

SHCNE_DRIVEREMOVED

ドライブが削除されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、削除されたドライブのルートが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_EXTENDED_EVENT

現在は使用しません。

SHCNE_FREESPACE

ドライブの空き領域の量が変更されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、空き領域が変更されたドライブのルートが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_MEDIAINSERTED

記憶域メディアがドライブに挿入されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、新しいメディアを含むドライブのルートが含まれます。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_MEDIAREMOVED

ストレージ メディアがドライブから削除されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、メディアが削除されたドライブのルートが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_MKDIR

フォルダーが作成されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、作成されたフォルダーが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_NETSHARE

ローカル コンピューター上のフォルダーがネットワーク経由で共有されています。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、共有されているフォルダーが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_NETUNSHARE

ローカル コンピューター上のフォルダーがネットワーク経由で共有されなくなりました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、共有されなくなったフォルダーが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_RENAMEFOLDER

フォルダーの名前が変更されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、以前の PIDL またはフォルダーの名前が含まれています。 dwItem2 には、フォルダーの新しい PIDL または名前が含まれています。

SHCNE_RENAMEITEM

フォルダー以外のアイテムの名前が変更されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、項目の以前の PIDL または名前が含まれています。 dwItem2 には、項目の新しい PIDL または名前が含まれています。

SHCNE_RMDIR

フォルダーが削除されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、削除されたフォルダーが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_SERVERDISCONNECT

コンピューターがサーバーから切断されました。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、コンピューターが切断されたサーバーが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。

SHCNE_UPDATEDIR

既存のフォルダーの内容は変更されましたが、フォルダーは引き続き存在し、名前は変更されていません。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、変更されたフォルダーが含まれています。 dwItem2 は使用されず、 NULL にする必要があります。 フォルダーが作成、削除、または名前変更された場合は、それぞれ SHCNE_MKDIRSHCNE_RMDIR、または SHCNE_RENAMEFOLDERを使用します。

SHCNE_UPDATEIMAGE

システム・イメージ・リスト内のイメージが変更されました。 SHCNF_DWORDuFlags で指定する必要があります。

dwItem2 には、変更されたシステム イメージ リスト内のインデックスが含まれています。 dwItem1 は使用されず、 NULL にする必要があります。

SHCNE_UPDATEITEM

既存のアイテム (フォルダーまたはフォルダー以外のアイテム) は変更されましたが、アイテムは引き続き存在し、名前は変更されていません。 uFlags では、SHCNF_IDLISTまたはSHCNF_PATHを指定する必要があります。 dwItem1 には、変更された項目が含まれています。 dwItem2 は使用されず、 NULL にする必要があります。 フォルダー以外のアイテムが作成、削除、または名前変更された場合は、代わりに、それぞれ SHCNE_CREATESHCNE_DELETE、または SHCNE_RENAMEITEMを使用します。

SHCNE_DISKEVENTS

すべてのディスク イベント識別子の組み合わせを指定します。

SHCNE_GLOBALEVENTS

すべてのグローバル イベント識別子の組み合わせを指定します。

SHCNE_INTERRUPT

指定されたイベントは、システム割り込みの結果として発生しました。 この値によって他のイベント値が変更されるため、単独では使用できません。

uFlags

型: UINT

ビット単位でSHCNF_TYPEと組み合わせると、dwItem1 パラメーターと dwItem2 パラメーターの意味を示すフラグ。 uFlags パラメーターは、次のいずれかの値である必要があります。

SHCNF_DWORD

dwItem1 パラメーターと dwItem2 パラメーターは DWORD 値です。

SHCNF_IDLIST

dwItem1dwItem2 は、変更の影響を受ける項目を表す ITEMIDLIST 構造体のアドレスです。 各 ITEMIDLIST は、デスクトップ フォルダーに対して相対的である必要があります。

SHCNF_PATH

dwItem1dwItem2 は、変更の影響を受けるアイテムの完全なパス名を含む最大長 MAX_PATH の null で終わる文字列のアドレスです。

SHCNF_PRINTER

dwItem1dwItem2 は、変更の影響を受けるプリンターのフレンドリ名を表す null で終わる文字列のアドレスです。

SHCNF_FLUSH

関数は、影響を受けるすべてのコンポーネントに通知が配信されるまで、戻らないようにする必要があります。 このフラグは他のデータ型フラグを変更しますが、それ自体では使用できません。

SHCNF_FLUSHNOWAIT

関数は、影響を受けるすべてのコンポーネントに通知を配信し始める必要がありますが、通知プロセスが開始されるとすぐに を返す必要があります。 このフラグは他のデータ型フラグを変更しますが、それ自体では使用できません。 このフラグには 、SHCNF_FLUSHが含まれます。

SHCNF_NOTIFYRECURSIVE

すべての子に登録されているクライアントに通知します。

[in, optional] dwItem1

種類: LPCVOID

省略可能。 最初のイベント依存値。

[in, optional] dwItem2

種類: LPCVOID

省略可能。 2 番目のイベント依存値。

戻り値

なし

解説

任意の型の新しいハンドラーを登録するアプリケーションは、アイコンとサムネイル キャッシュを無効にするようにシェルに指示するために、SHCNE_ASSOCCHANGED フラグで SHChangeNotify を呼び出す必要があります。 これにより、登録されている新しいアイコンとサムネイル ハンドラーも読み込まれます。 ただし、アイコン オーバーレイ ハンドラーは再読み込みされないことに注意してください。

dwItem1 および dwItem2 によって指される文字列は、ANSI または Unicode のいずれかになります。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shlobj_core.h (Shlobj.h を含む)
Library Shell32.lib
[DLL] Shell32.dll (バージョン 4.0 以降)
API セット ext-ms-win-shell-shell32-l1-2-0 (Windows 8.1で導入)