KNOWNFOLDER_DEFINITION構造体 (shobjidl_core.h)
既知のフォルダーの詳細を定義します。
構文
typedef struct KNOWNFOLDER_DEFINITION {
KF_CATEGORY category;
LPWSTR pszName;
LPWSTR pszDescription;
KNOWNFOLDERID fidParent;
LPWSTR pszRelativePath;
LPWSTR pszParsingName;
LPWSTR pszTooltip;
LPWSTR pszLocalizedName;
LPWSTR pszIcon;
LPWSTR pszSecurity;
DWORD dwAttributes;
KF_DEFINITION_FLAGS kfdFlags;
FOLDERTYPEID ftidType;
} KNOWNFOLDER_DEFINITION;
メンバー
category
種類: KF_CATEGORY
フォルダーを仮想、固定、共通、またはユーザーごとに分類する、 KF_CATEGORY 定数の 1 つの値。
pszName
種類: LPWSTR
null で終わる Unicode 文字列として格納されている、既知のフォルダーのローカライズされていない正規名へのポインター。 このフォルダーが共通フォルダーまたはユーザー単位のフォルダーの場合、この値は "ユーザー シェル フォルダー" レジストリ設定の値名としても使用されます。 この名前は、人間が判読できる一意の名前を意味します。 サード パーティは、 という形式 Company.Application.Name
に従うことをお勧めします。 ここで指定した名前は、表示名と混同しないでください。
pszDescription
種類: LPWSTR
null で終わる Unicode 文字列として格納されている、既知のフォルダーの簡単な説明へのポインター。 この説明には、フォルダーの目的と使用方法が含まれている必要があります。
fidParent
種類: KNOWNFOLDERID
親フォルダーとして機能する別の既知のフォルダーに名前を付ける KNOWNFOLDERID 値。 共通フォルダーとユーザー単位のフォルダーにのみ適用されます。 この値は pszRelativePath と組み合わせて使用されます。 詳細については、「 解説 」を参照してください。
pszRelativePath に値が指定されていない場合、この値は省略可能です。
pszRelativePath
種類: LPWSTR
省略可能。 fidParent で指定された親フォルダーに対する相対パスへのポインター。 これは null で終わる Unicode 文字列であり、物理ファイル システムパスを参照し、ローカライズされません。 共通フォルダーとユーザー単位のフォルダーにのみ適用されます。 詳細については、「 解説 」を参照してください。
pszParsingName
種類: LPWSTR
null で終わる Unicode 文字列として格納されている、フォルダーのシェル名前空間フォルダー パスへのポインター。 仮想フォルダーにのみ適用されます。 たとえば、 Control Panel
の解析名 ::%CLSID_MyComputer%::%CLSID_ControlPanel%
は です。
pszTooltip
種類: LPWSTR
省略可能。 この既知のフォルダーの作成時に使用される既定のツールヒント リソースへのポインター。 これは、次の形式の null で終わる Unicode 文字列です。
モジュール名、リソース ID
たとえば、 @%_SYS_MOD_PATH%,-12688
は共通の画像のツールヒントです。 フォルダーが作成されると、この文字列はそのフォルダーの Desktop.ini のコピーに格納されます。 これは、他のシェル API によって後で変更できます。 このリソースはローカライズされている可能性があります。
この情報は、仮想フォルダーには必要ありません。
pszLocalizedName
種類: LPWSTR
省略可能。 フォルダーの作成時に使用される既定のローカライズされた名前リソースへのポインター。 これは、次の形式の null で終わる Unicode 文字列です。
モジュール名、リソース ID
フォルダーが作成されると、この文字列はそのフォルダーの Desktop.ini のコピーに格納されます。 これは、他のシェル API によって後で変更できます。
この情報は、仮想フォルダーには必要ありません。
pszIcon
種類: LPWSTR
省略可能。 フォルダーの作成時に使用される既定のアイコン リソースへのポインター。 これは、次の形式の null で終わる Unicode 文字列です。
モジュール名、リソース ID
フォルダーが作成されると、この文字列はそのフォルダーの Desktop.ini のコピーに格納されます。 これは、他のシェル API によって後で変更できます。
この情報は、仮想フォルダーには必要ありません。
pszSecurity
種類: LPWSTR
省略可能。 セキュリティ記述子定義言語の書式指定文字列へのポインター。 これは、フォルダーの作成時にフォルダーが受け取る既定のセキュリティ記述子を記述する、null で終わる Unicode 文字列です。 このパラメーターが NULL の場合、新しいフォルダーはその親のセキュリティ記述子を継承します。 これは、すべてのユーザーがアクセスする一般的なフォルダーに特に役立ちます。
dwAttributes
型: DWORD
省略可能。 フォルダーの作成時にフォルダーに指定される既定のファイル システム属性。 たとえば、ファイルを非表示にして読み取り専用 (FILE_ATTRIBUTE_HIDDENとFILE_ATTRIBUTE_READONLY) できます。 使用可能な値の完全な一覧については、CreateFile 関数の dwFlagsAndAttributes パラメーターを参照してください。 必要ない場合は-1 に設定します。
kfdFlags
省略可能。 リダイレクトを制限したり、PC 間ローミングを許可したり、既知のフォルダーが作成される時刻を制御したりできる、 KF_DEFINITION_FLAGS 列挙のその他の値の 1 つ。 必要ない場合は、0 に設定します。
ftidType
種類: FOLDERTYPEID
フォルダーの内容 (ドキュメント、音楽、写真など) に基づいて既知のフォルダーの種類を識別する FOLDERTYPEID 値の 1 つ。 この値は GUID です。
注釈
fidParent と pszRelativePath の値は連動します。 たとえば、MyNewFolder という名前のフォルダーを定義し、そのフォルダーを ...< として作成するとします。Username>\AppData\Local\MyApp\MyNewFolder。 fidParent で ...< を表すFOLDERID_LocalAppDataを指定します。Username>\AppData\Local。 pszRelativePath に "\MyApp\MyNewFolder" を指定します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
Header | shobjidl_core.h (Shobjidl.h を含む) |
こちらもご覧ください
IKnownFolder::GetFolderDefinition