FILETYPEATTRIBUTEFLAGS 열거형(shlwapi.h)
파일 연결 PROGID 레지스트리 키의 EditFlags 값에 사용되는 FILETYPEATTRIBUTEFLAGS 상수를 나타냅니다.
Syntax
typedef enum {
FTA_None = 0x00000000,
FTA_Exclude = 0x00000001,
FTA_Show = 0x00000002,
FTA_HasExtension = 0x00000004,
FTA_NoEdit = 0x00000008,
FTA_NoRemove = 0x00000010,
FTA_NoNewVerb = 0x00000020,
FTA_NoEditVerb = 0x00000040,
FTA_NoRemoveVerb = 0x00000080,
FTA_NoEditDesc = 0x00000100,
FTA_NoEditIcon = 0x00000200,
FTA_NoEditDflt = 0x00000400,
FTA_NoEditVerbCmd = 0x00000800,
FTA_NoEditVerbExe = 0x00001000,
FTA_NoDDE = 0x00002000,
FTA_NoEditMIME = 0x00008000,
FTA_OpenIsSafe = 0x00010000,
FTA_AlwaysUnsafe = 0x00020000,
FTA_NoRecentDocs = 0x00100000,
FTA_SafeForElevation = 0x00200000,
FTA_AlwaysUseDirectInvoke = 0x00400000
} FILETYPEATTRIBUTEFLAGS;
상수
FTA_None 값: 0x00000000 FILETYPEATTRIBUTEFLAGS 옵션이 설정되지 않았습니다. |
FTA_Exclude 값: 0x00000001 파일 형식을 제외합니다. |
FTA_Show 값: 0x00000002 파일 이름 확장명과 연결되지 않은 폴더와 같은 파일 형식을 표시합니다. |
FTA_HasExtension 값: 0x00000004 파일 형식에 파일 이름 확장명을 가지고 있음을 나타냅니다. |
FTA_NoEdit 값: 0x00000008 이 파일 형식과 연결된 레지스트리 항목의 편집, 새 항목 추가, 기존 항목 삭제 또는 수정을 금지합니다. |
FTA_NoRemove 값: 0x00000010 이 파일 형식과 연결된 레지스트리 항목의 삭제를 금지합니다. |
FTA_NoNewVerb 값: 0x00000020 파일 형식에 새 동사를 추가하는 것을 금지합니다. |
FTA_NoEditVerb 값: 0x00000040 열기 및 인쇄와 같은 정식 동사의 수정 또는 삭제를 금지합니다. |
FTA_NoRemoveVerb 값: 0x00000080 열기 및 인쇄와 같은 정식 동사의 삭제를 금지합니다. |
FTA_NoEditDesc 값: 0x00000100 파일 형식에 대한 설명의 수정 또는 삭제를 금지합니다. |
FTA_NoEditIcon 값: 0x00000200 파일 형식에 할당된 아이콘 의 수정 또는 삭제를 금지합니다. |
FTA_NoEditDflt 값: 0x00000400 기본 동사의 수정을 금지합니다. |
FTA_NoEditVerbCmd 값: 0x00000800 동사와 연결된 명령의 수정 을 금지합니다 . |
FTA_NoEditVerbExe 값: 0x00001000 동사의 수정 또는 삭제를 금지합니다. |
FTA_NoDDE 값: 0x00002000 DDE와 관련된 항목의 수정 또는 삭제를 금지합니다. |
FTA_NoEditMIME 값: 0x00008000 콘텐츠 형식 및 기본 확장 항목의 수정 또는 삭제를 금지합니다. |
FTA_OpenIsSafe 값: 0x00010000 다운로드한 파일에 대해 파일 형식의 열린 동사를 안전하게 호출할 수 있음을 나타냅니다. 이 플래그는 AssocIsDangerous로 식별된 안전한 파일 형식에만 적용됩니다. 사용자 환경을 개선하고 항목을 다운로드 및 활성화할 때 불필요한 사용자 프롬프트를 줄이려면 파일 형식 소유자는 이 플래그를 지정해야 하며 파일을 다운로드하고 활성화하는 애플리케이션은 이 플래그를 준수해야 합니다. |
FTA_AlwaysUnsafe 값: 0x00020000 검사 요청 안 함 상자가 활성화되지 않도록 합니다. 이 플래그를 사용하면 FTA_OpenIsSafe 적용되지 않으며 AssocIsDangerous 는 항상 TRUE를 반환합니다. 파일 형식이 코드를 실행할 수 있는 경우 항상 이 플래그를 사용하거나, 예를 들어 코드를 실행하기 전에 경고 프롬프트를 생성하여 파일 형식 처리기가 위험을 완화하는지 확인해야 합니다. 사용자는 파일 형식 대화 상자를 통해 이 특성을 재정의할 수 있습니다. |
FTA_NoRecentDocs 값: 0x00100000 이 파일 형식의 멤버를 최근 문서 폴더에 추가하는 것을 금지합니다. 또한 Windows 7 이상에서는 이 파일 형식의 멤버를 애플리케이션 점프 목록의 자동 최근 항목 또는 자주 사용하는 범주에 추가하는 것을 금지합니다. 이 플래그는 이 파일 형식의 멤버가 사용자 지정 점프 목록에 추가되는 것을 제한하지 않습니다. 또한 다른 애플리케이션에서 이 파일 형식을 사용하는 경우 다른 애플리케이션의 자동 점프 Lists 추가되는 파일 형식에 제한을 두지 않습니다. |
FTA_SafeForElevation 값: 0x00200000 Windows 8 도입되었습니다. 파일 또는 URI 체계를 낮은 신뢰 애플리케이션에서 사용할 수 있는 안전한 것으로 표시합니다. 인터넷 또는 앱 컨테이너에서 시작된 파일은 파일이 신뢰할 수 없는 것으로 간주되는 예입니다. 코드를 포함하는 신뢰할 수 없는 파일은 특히 위험하며, 완전 신뢰 애플리케이션에서 파일을 열어야 하는 경우 적절한 보안 완화를 적용해야 합니다. 코드를 실행할 수 있는 파일 형식의 파일 형식 소유자는 프로그램이 더 높은 무결성 수준에서 실행 중인 코드와 관련된 권한 상승 위협을 완화하는 경우에만 이 플래그를 지정해야 합니다. 완화에는 코드가 실행되기 전에 사용자에게 메시지를 표시하거나 권한이 감소된 코드를 실행하는 것이 포함됩니다. 전체 파일 형식에 대해 이 플래그를 지정하면 앱 컨테이너 내에서 실행되는 앱이 이 형식의 파일을 완전 신뢰로 실행되는 프로그램에 전달할 수 있습니다. 일부 파일 형식은 코드를 실행하는 기능으로 인해 본질적으로 위험한 것으로 인식되며 이 값을 지정하지 않으면 차단됩니다. |
FTA_AlwaysUseDirectInvoke 값: 0x00400000 Windows 8 도입되었습니다. 파일 형식의 동사가 다운로드한 파일 버전 대신 URI를 사용하여 호출되는지 확인합니다. SupportedProtocols 또는 UseUrl 등록을 통해 DirectInvoke를 지원하도록 파일 형식의 동사를 등록한 경우에만 이 플래그를 사용합니다. |
설명
이러한 플래그는 ProgID 등록의 EditFlags 값에 저장된 가능한 특성을 나타냅니다. EditFlags 데이터는 단일 REG_DWORD.
다음 예제에서는 .myp 파일 형식에 할당된 FTA_NoRemove (0x00000010 ) 및 FTA_NoNewVerb (0x00000020) 특성을 보여 줍니다.
HKEY_CLASSES_ROOT .myp (Default) = MyProgram.1 MyProgram.1 (Default) = MyProgram Application EditFlags = 0x00000030\
IQueryAssociations::GetData와 같은 API는 해당 EditFlags 데이터를 검색할 수 있습니다. 이러한 FILETYPEATTRIBUTEFLAGS 플래그의 숫자 등가를 검색된 값과 비교하여 설정된 플래그를 확인합니다.
다음 예제에서는 IQueryAssociations::GetData 를 사용하여 해당 값이 설정되었는지 확인하는 방법을 보여 줍니다.
IQueryAssociations *passoc;
HRESULT hr = AssocCreate(CLSID_QueryAssociations, IID_PPV_ARGS(&passoc));
if (SUCCEEDED(hr))
{
hr = passoc->Init(NULL, pszType, NULL, NULL);
if (SUCCEEDED(hr))
{
DWORD dwEditFlags;
ULONG cb = sizeof(dwEditFlags);
hr = passoc->GetData(NULL, ASSOCDATA_EDITFLAGS, NULL, &dwEditFlags, &cb);
if (SUCCEEDED(hr))
{
if (dwEditFlags & 0x00000010) // FTA_NoRemove
{
// ...
}
if (dwEditFlags & 0x00000020) // FTA_NoNewVerb
{
// ...
}
}
}
passoc->Release();
}
EditFlags 특성을 설정하려면 RegSetValueEx 또는 SHSetValue 함수를 사용할 수 있습니다. 먼저 IQueryAssociations::GetData 를 사용하여 위의 예제와 같이 현재 특성 집합을 검색하고 원하는 FILETYPEATTRIBUTEFLAGS 를 해당 값에 추가한 다음 두 집합 함수 중 하나를 사용하여 해당 값을 레지스트리에 다시 씁니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP, Windows 2000 Professional, Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
머리글 | shlwapi.h |