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