다음을 통해 공유


IDL 특성

일반적으로 .idl 파일을 유지 관리하면 다음을 수행해야 했습니다.

  • .idl 파일의 구조 및 구문을 숙지하여 수정할 수 있습니다.

  • 마법사를 사용하여 .idl 파일의 일부 측면을 수정할 수 있습니다.

이제 Visual C++ IDL 특성을 사용하여 소스 코드 파일 내에서 .idl 파일을 수정할 수 있습니다. 대부분의 경우 Visual C++ IDL 특성은 MIDL 특성과 동일한 이름을 갖습니다. Visual C++ IDL 특성과 MIDL 특성의 이름이 같으면 소스 코드 파일에 Visual C++ 특성을 배치하면 이름 지정 MIDL 특성이 포함된 .idl 파일이 생성됩니다. 그러나 Visual C++ IDL 특성은 MIDL 특성의 모든 기능을 제공하지 않을 수 있습니다.

COM 특성과 함께 사용되지 않는 경우 IDL 특성을 사용하여 인터페이스를 정의할 수 있습니다. 소스 코드가 컴파일되면 특성이 생성된 .idl 파일을 정의하는 데 사용됩니다. ATL 프로젝트에서 COM 특성과 함께 사용할 경우 일부 IDL 특성(예: coclass)은 코드가 프로젝트에 삽입되도록 합니다.

idl_quote 현재 버전의 Visual C++에서 지원되지 않는 MIDL 구문을 사용할 수 있습니다. 이 특성 및 importlib 및 includelib같은 다른 특성은 현재 Visual Studio C++ 프로젝트에서 기존 .idl 파일을 사용하는 데 도움이 됩니다.

attribute 설명
aggregatable 컨트롤을 다른 컨트롤로 집계할 수 있음을 나타냅니다.
appobject 전체 EXE 애플리케이션과 연결된 애플리케이션 개체로 coclass를 식별하고, coclass의 함수 및 속성을 이 형식 라이브러리에서 전역적으로 사용할 수 있음을 나타냅니다.
async_uuid MIDL 컴파일러가 COM 인터페이스의 동기 버전과 비동기 버전을 모두 정의하도록 지시하는 UUID를 지정합니다.
bindable 속성이 데이터 바인딩을 지원합니다.
call_as 원격 함수에 매핑할 수 없는 함수를 사용하도록 설정합니다.
case 공용 구조체의 switch_type 특성과 함께 사용됩니다.
coclass 클래스 정의를 .idl 파일에 coclass로 배치합니다.
control 사용자 정의 형식이 컨트롤임을 지정합니다.
cpp_quote 따옴표 문자 없이 지정된 문자열을 생성된 헤더 파일로 내보냅니다.
defaultbind 개체를 가장 잘 나타내는 바인딩 가능한 단일 속성을 나타냅니다.
defaultcollelem Visual Basic 코드 최적화에 사용됩니다.
defaultvalue 형식화된 선택적 매개 변수에 대한 기본값의 사양을 허용합니다.
default coclass 내에 정의된 custom 또는 dispinterface가 기본 프로그래밍 인터페이스를 나타낸다는 것을 의미합니다.
defaultvtable 인터페이스를 컨트롤의 기본 vtable 인터페이스로 정의합니다.
dispinterface .Idl 파일의 인터페이스를 디스패치 인터페이스로 배치합니다.
displaybind 사용자에게 바인딩 가능으로 표시되어야 하는 속성을 나타냅니다.
dual .idl 파일에 인터페이스를 이중 인터페이스로 배치합니다.
entry DLL의 진입점을 식별하여 모듈에서 내보낸 함수 또는 상수를 지정합니다.
first_is 전송할 첫 번째 배열 요소의 인덱스를 지정합니다.
helpcontext 사용자가 도움말 파일에서 이 요소에 대한 정보를 볼 수 있도록 하는 컨텍스트 ID를 지정합니다.
helpfile 형식 라이브러리에 대한 도움말 파일의 이름을 설정합니다.
helpstringcontext .hlp 또는 .chm 파일에서 도움말 항목의 ID를 지정합니다.
helpstringdll 문서 문자열 조회(지역화)를 수행하는 데 사용할 DLL의 이름을 지정합니다.
helpstring 적용되는 요소를 설명하는 데 사용되는 문자열을 지정합니다.
hidden 항목이 존재하지만 사용자 지향 브라우저에 표시해서는 안 됨을 나타냅니다.
idl_module DLL의 진입점을 지정합니다.
idl_quote 현재 버전의 Visual C++에서 지원되지 않는 특성 또는 IDL 구문을 사용할 수 있습니다.
id 멤버 함수(인터페이스 또는 dispinterface의 속성 또는 메서드)에 대한 DISPID를 지정합니다.
iid_is 인터페이스 포인터가 가리키는 COM 인터페이스의 IID를 지정합니다.
immediatebind 데이터 바인딩된 개체의 속성에 대한 모든 변경 내용을 데이터베이스에 즉시 알립니다.
importlib 다른 형식 라이브러리에 이미 컴파일된 형식을 만들고 있는 형식 라이브러리에서 사용할 수 있도록 합니다.
import 기본 .idl 파일에서 참조하려는 정의가 포함된 다른 .idl, .odl 또는 헤더 파일을 지정합니다.
include 생성된 .idl 파일에 포함할 하나 이상의 헤더 파일을 지정합니다.
includelib .idl 또는 .h 파일이 생성된 .idl 파일에 포함되도록 합니다.
in 호출 프로시저에서 호출된 프로시저로 매개 변수를 전달할 것임을 나타냅니다.
last_is 전송할 마지막 배열 요소의 인덱스를 지정합니다.
lcid 로캘 식별자를 함수에 전달할 수 있습니다.
length_is 전송할 배열 요소의 수를 지정합니다.
licensed 적용되는 coclass에 라이선스가 부여되고 IClassFactory2.
local 인터페이스 헤더에서 사용될 때 MIDL 컴파일러를 헤더 생성기로 사용할 수 있습니다. 개별 함수에서 사용되는 경우 스텁이 생성되지 않는 로컬 프로시저를 지정합니다.
max_is 유효한 배열 인덱스의 최대값을 지정합니다.
module .Idl 파일의 라이브러리 블록을 정의합니다.
ms_union 캡슐화되지 않은 공용 구조체의 네트워크 데이터 표현 맞춤을 제어합니다.
no_injected_text 특성 사용의 결과로 컴파일러가 코드를 삽입하지 못하도록 합니다.
nonbrowsable 인터페이스 멤버를 속성 브라우저에 표시해서는 안 됨을 나타냅니다.
noncreatable 자체적으로 인스턴스화할 수 없는 개체를 정의합니다.
nonextensible 구현에 IDispatch 인터페이스 설명에 나열된 속성 및 메서드만 포함하며 런타임에 추가 멤버로 확장할 수 없게 지정합니다.
object 사용자 지정 인터페이스를 식별합니다. 사용자 지정 특성과 동의어입니다.
odl 인터페이스를 ODL(개체 설명 언어) 인터페이스로 식별합니다.
oleautomation 인터페이스가 Automation과 호환된다는 것을 나타냅니다.
optional 멤버 함수에 대한 선택적 매개 변수를 지정합니다.
out 호출된 프로시저에서 호출하는 프로시저로 반환된(서버에서 클라이언트로 반환된) 포인터 매개 변수를 식별합니다.
pointer_default 매개 변수 목록에 표시되는 최상위 포인터를 제외한 모든 포인터에 대한 기본 포인터 특성을 지정합니다.
pragma 따옴표 문자 없이 지정된 문자열을 생성된 .idl 파일로 내보냅니다.
progid COM 개체의 ProgID를 지정합니다.
propget 속성 접근자(get) 함수를 지정합니다.
propputref 값 대신 참조를 사용하는 속성 설정 함수를 지정합니다.
propput 속성 설정 함수를 지정합니다.
ptr 포인터를 전체 포인터로 지정합니다.
public .idl 파일 내에서 참조되지 않은 경우에도 typedef가 형식 라이브러리로 이동하도록 합니다.
range 런타임에 값이 설정된 인수 또는 필드에 허용되는 값의 범위를 지정합니다.
readonly 변수에 대한 할당을 금지합니다.
ref 참조 포인터를 식별합니다.
requestedit 속성이 OnRequestEdit 알림을 지원함을 나타냅니다.
restricted 라이브러리 또는 모듈, 인터페이스 또는 dispinterface의 멤버를 임의로 호출할 수 없게 지정합니다.
retval 멤버의 반환 값을 받는 매개 변수를 지정합니다.
size_is 크기가 큰 포인터, 크기가 큰 포인터에 대한 크기 포인터 및 단일 또는 다차원 배열에 할당된 메모리 크기를 지정합니다.
source 클래스, 속성 또는 메서드의 멤버가 이벤트의 원본임을 나타냅니다.
string 1차원 char, wchar_t또는 byte이와 동등한 배열 또는 이러한 배열에 대한 포인터를 문자열로 처리해야 임을 나타냅니다.
switch_is 공용 구조체 멤버를 선택하는 공용 구조체 비범죄자 역할을 하는 식 또는 식별자를 지정합니다.
switch_type 공용 구조체로 사용되는 변수의 형식을 식별합니다.
transmit_as 클라이언트 및 서버 애플리케이션이 조작하는 제공된 형식을 전송된 형식과 연결하도록 컴파일러에 지시합니다.
uidefault 형식 정보 멤버가 사용자 인터페이스에 표시할 기본 멤버임을 나타냅니다.
unique 고유한 포인터를 지정합니다.
usesgetlasterror 호출자에게 해당 함수를 호출할 때 오류가 발생하면 호출자가 호출 GetLastError 하여 오류 코드를 검색할 수 있음을 알릴 수 있습니다.
uuid 클래스 또는 인터페이스의 고유 ID를 지정합니다.
v1_enum 지정된 열거형 형식이 16비트 기본값이 아닌 32비트 엔터티로 전송되도록 지시합니다.
vararg 함수가 가변 개수의 인수를 취하게 지정합니다.
vi_progid ProgID의 버전 독립적 형식을 지정합니다.
wire_marshal 애플리케이션별 데이터 형식 대신 전송에 사용할 데이터 형식을 지정합니다.

참고 항목

그룹별 특성