연결 배열
연결 배열은 처리기, 동사 및 형식의 아이콘 및 표시 이름과 같은 기타 특성을 포함하여 항목 형식에 대한 정보를 저장하는 데 사용되는 레지스트리 위치의 순서가 지정된 목록입니다. Shell은 연결 배열을 사용하여 셸 항목에 대한 정보를 포함할 수 있는 미리 정의된 레지스트리 위치 집합을 쿼리합니다.
이 항목은 다음과 같이 구성됩니다.
연결 배열 정보
연결 배열은 처리기, 동사 및 형식의 아이콘 및 표시 이름과 같은 기타 특성을 포함하여 항목 형식에 대한 정보를 포함하는 레지스트리 위치의 정렬된 목록입니다. 항목 유형에 대한 이 정보는 다양한 수준의 특이성으로 등록할 수 있습니다. 예를 들어 특정 파일 형식(예: .jpg) 또는 System.Kind가 동일한 모든 항목(예: System.kind = picture) 또는 모든 항목에 대해서만 표시되는 동사를 등록할 수 있습니다.
Shell은 연결 배열을 사용하여 항목에 대한 정보를 잠재적으로 포함할 수 있는 미리 정의된 레지스트리 위치 집합을 쿼리합니다. 연결 배열 API를 사용하여 레지스트리 하위 키에서 요청된 정보가 포함된 단일 값을 검색할 수 있으며, 이 값은 이를 제공하는 배열의 첫 번째 항목에서 가져옵니다. 예를 들어 기본 아이콘 값은 이러한 방식으로 검색됩니다. 연결 배열을 사용하여 레지스트리 하위 키에 저장된 값 집합을 검색할 수도 있습니다. 예를 들어 동사 목록은 모든 하위 키 아래에 등록된 동사에서 작성됩니다.
Shell은 셸 항목에 대한 정보를 위해 미리 정의된 레지스트리 위치 집합을 쿼리한 후 가장 구체적인 위치에서 가장 일반적인 위치까지 순서대로 레지스트리 위치를 배열에 배치합니다.
연결 배열은 정렬된 목록이므로 애플리케이션 개발자에게 특정 유형의 항목에 대해 반환될 레지스트리에 정보를 추가하는 메커니즘을 제공합니다. 마찬가지로 연결 배열을 사용하면 애플리케이션 개발자가 해당 항목이 보다 일반적인 위치에 등록될 때 특정 항목 그룹에 대한 정보를 레지스트리에 추가할 수 있습니다. 이 논리는 셸 항목에 대한 정보를 저장하기 위해 레지스트리에서 가장 적절한 위치에 대한 결정을 알려줍니다.
기본 Windows 시스템에서 .jpg 파일에는 다음과 같은 연결 배열이 있습니다.
- \ HKEY_CLASSES_ROOT jpgfile
- \ HKEY_CLASSES_ROOT SystemFileAssociations\.jpg
- \ HKEY_CLASSES_ROOT 이미지
- HKEY_CLASSES_ROOT\*
- \ HKEY_CLASSES_ROOT AllFilesystemObjects
연결 배열 등록에 대한 자세한 내용은 애플리케이션 등록을 참조하세요.
연결 배열 쿼리
가장 구체적인 레지스트리 하위 키에서 모든 레지스트리 하위 키의 정보 상위 집합에 이르기까지 다양한 레지스트리 하위 키에서 정보를 검색하는 Shell API가 있습니다.
연결 배열의 가장 일반적인 사용은 요청된 정보가 있는 배열의 가장 구체적인 요소에서 Shell이 반환하는 단일 값을 쿼리하는 것입니다. 다음 코드 예제에서는 이 작업을 수행하는 방법을 보여줍니다.
IQueryAssociations *pqa;
// pShellItem is assumed to be an existing IShellItem object.
hr = pShellItem->BindToHandler(NULL, BHID_AssociationArray, IID_PPV_ARGS(&pqa));
if (SUCCEEDED(hr))
{
wchar_t szValue[256];
DWORD cbValue = sizeof(szValue); // Count of bytes in the array
hr = pqa->GetData(0, ASSOCDATA_VALUE, L"InfoTip", szValue, &cbValue);
if (SUCCEEDED(hr))
{
// The "InfoTip" value is used to compute the infotip string from
// properties of an item.
}
pqa->Release();
}
다음 API를 사용하여 연결 배열을 쿼리하거나 쿼리할 수 있는 연결 배열 IQueryAssociations 개체를 생성할 수 있습니다.
- AssocCreate (Windows Vista 이전)
- AssocCreateForClasses
- AssocQueryString
특정 셸 데이터 원본에 대한 연결 배열 작업
각 Shell 데이터 원본은 해당 항목에 대한 연결 배열을 정의합니다. 연결 배열 정의는 일반적으로 항목 형식의 함수입니다. 셸 데이터 원본 구현자는 연결 배열을 정의하고 문서화하여 애플리케이션이 동사 또는 기타 정보 등록과 같은 형식의 동작을 확장할 수 있도록 해야 합니다. 애플리케이션은 항목에 동사 추가와 같은 연결 배열 하위 키에 데이터를 추가하여 항목의 동작을 확장할 수 있습니다.
파일 시스템 데이터 원본은 다음 레지스트리 하위 키 및 특수 ProgID를 기반으로 파일에 대한 연결 배열을 빌드합니다.
파일에 등록된 ProgID가 있는 경우 HKEY_CLASSES_ROOT\ProgID 가 사용됩니다. 그렇지 않으면 알 수 HKEY_CLASSES_ROOT\ 사용됩니다.
파일 이름 확장명은 HKEY_CLASSES_ROOT\SystemFileAssociations.fileExtension\ 하위 키에 등록됩니다.
특수 ProgID는 다음 표에 나와 있습니다.
Special progID Description HKEY_CLASSES_ROOT\* 모든 파일(비 폴더) \ HKEY_CLASSES_ROOT AllFilesystemObjects 파일 및 파일 시스템 폴더 \ HKEY_CLASSES_ROOT 디렉터리 파일 시스템 폴더 \ HKEY_CLASSES_ROOT 폴더 셸 컨테이너
셸 데이터 원본 연결 배열
다음 목록은 이 항목에 설명된 용도로 사용할 수 있는 Shell 데이터 저장소 연결 배열 중 일부를 나타냅니다.
- HKEY_CLASSES_ROOT\*
- \ HKEY_CLASSES_ROOT AllFilesystemObjects
- \ HKEY_CLASSES_ROOT Kind.Document
- \ HKEY_CLASSES_ROOT 결과
- \ HKEY_CLASSES_ROOT SystemFileAssociations\.docx
- \ HKEY_CLASSES_ROOT Word. Document.12
DBFolder(검색 결과 및 쿼리 기반 뷰의 항목을 나타내는 Shell 데이터 저장소)에 사용할 수 있는 셸 데이터 원본 연결 배열은 다음과 같습니다.
- 드라이브
- 네트워크
- RegItems
- 예:
- ContentView
- 동사
다른 일반적인 연결 배열에는 폴더 및 프린터가 포함됩니다.
추가 리소스
- Shell 데이터 저장소를 만들려면 기본 폴더 개체 인터페이스 구현을 참조하세요.
관련 항목