FORM_INFO_2 데이터 구조
인쇄 스풀러와 Unidrv 프린터 드라이버는 다국어 환경에서 더 나은 지원 프린터 양식을 제공하기 위해 Windows Vista에서 향상되었습니다. 스풀러는 MUI 문자열을 지원하는 데 필요한 추가 정보를 포함하도록 양식 표시 이름 및 새 FORM_INFO_2 데이터 구조에 대한 MUI(다국어 사용자 인터페이스) 문자열을 지원합니다.
FORM_INFO_1 데이터 구조는 다음과 같이 정의됩니다.
typedef struct _FORM_INFO_1 {
DWORD Flags;
LPTSTR pName;
SIZEL Size;
RECTL ImageableArea;
} FORM_INFO_1, *PFORM_INFO_1;
FORM_INFO_1 pName 멤버는 유일한 문자열 필드이므로 내부 검색 루틴이 내부 데이터베이스에서 양식을 찾는 데 사용하는 키 이름을 만들고 최종 사용자에게 표시되는 표시 이름으로 만들 수 있습니다.
다음 코드 예제에 정의된 FORM_INFO_2 구조체는 MUI 지원을 제공하기 위해 추가 필드를 추가합니다.
typedef struct _FORM_INFO_2 {
DWORD Flags;
LPTSTR pName;
SIZEL Size;
RECTL ImageableArea;
LPCSTR pKeyword;
DWORD StringType;
LPCTSTR pMuiDll;
DWORD dwResourceId;
LPCTSTR pDisplayName;
LANGID wLangId;
} FORM_INFO_2, *PFORM_INFO_2;
FORM_INFO_2 pKeyword 멤버를 추가하여 표시 이름과 다를 수 있는 고유한 키워드(keyword) 추가할 수 있도록 합니다.
또한 이 구조를 사용하면 pMuiDll 및 dwResourceId 멤버를 사용하여 양식 데이터베이스에 리소스 DLL 및 리소스 ID를 추가할 수 있습니다. StringType 멤버의 값이 STRING_MUIDLL pMuiDll 및 dwResourceId 멤버에 표시 이름의 리소스 DLL 및 식별자가 포함된 경우 스풀러의 AddForm 함수는 DLL의 표시 이름을 조회하여 내부적으로 기록합니다. 수준 값이 2인 GetForm 또는 EnumForms 함수를 호출하면 FORM_INFO_2 구조에 반환되는 정보에는 pDisplayName에서 참조하는 표시 이름과 wLangID의 해당 언어 ID가 포함됩니다.
AddForm을 호출할 때 FORM_INFO_1 구조를 계속 사용하는 프린터 드라이버는 양식 데이터베이스의 해당 구조에 있는 정보만 저장합니다. FORM_INFO_1 구조체에서 찾을 수 없는 FORM_INFO_2 구조체의 멤버는 FORM_INFO_2 구조를 반환하는 GetForm 또는 EnumForms 호출로 쿼리할 때 NULL 또는 0이 됩니다.
프린터 양식을 추가하고 FORM_INFO_1 및 FORM_INFO_2 데이터 구조를 사용하는 방법에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.