local 특성
[local] 특성은 인터페이스 또는 함수가 원격이 아니라는 것을 MIDL 컴파일러에 지정합니다.
[
local
[, interface-attribute-list]
]
interface interface-name
{
}
[
object,
uuid(string-uuid),
local [, interface-attribute-list]
]
interface interface-name
{
}
[ local [, function-attribute-list] ] function-declarator ;
매개 변수
-
interface-attribute-list
-
인터페이스 전체에 적용되는 다른 특성을 지정합니다. 특성 [엔드포인트], [버전], [pointer_default] 은 선택 사항입니다. /app_config 스위치로 컴파일할 때 [implicit_handle] 또는 [auto_handle]도 있을 수 있습니다. 여러 특성을 쉼표로 구분합니다.
-
interface-name
-
소프트웨어 구성 요소가 인터페이스를 구분할 수 있는 이름을 지정합니다.
-
string-uuid
-
Uuidgen 유틸리티에서 생성된 UUID 문자열을 지정합니다. MIDL 컴파일러 스위치 /osf를 사용하지 않는 경우 UUID 문자열을 따옴표로 묶을 수 있습니다.
-
function-attribute-list
-
함수에 적용되는 0개 이상의 특성을 지정합니다. 유효한 함수 특성은 [콜백]입니다. 포인터 특성 [ref], [unique] 또는 [ptr]; 및 사용 특성 [문자열], [무시] 및 [context_handle]. 여러 특성을 쉼표로 구분합니다.
-
function-declarator
-
함수의 형식 지정자, 함수 이름 및 매개 변수 목록을 지정합니다.
설명
[local] 특성은 개별 함수 또는 인터페이스 전체에 적용할 수 있습니다.
인터페이스 헤더에서 사용되는 경우 [local] 특성을 사용하면 MIDL 컴파일러를 헤더 생성기로 사용할 수 있습니다. 컴파일러는 함수에 대한 스텁을 생성하지 않으며 헤더를 전송할 수 있도록 보장하지 않습니다.
RPC 인터페이스의 경우 [로컬] 특성을 [uuid] 특성과 동시에 사용할 수 없습니다. [uuid] 또는 [local]은 인터페이스 헤더에 있어야 하며 선택한 헤더는 정확히 한 번 발생해야 합니다.
COM 인터페이스([개체] 인터페이스 특성으로 식별됨)의 경우 [uuid] 특성이 있더라도 인터페이스 특성 목록에 [local] 특성이 포함될 수 있습니다.
개별 함수에서 사용되는 경우 [local] 특성은 스텁이 생성되지 않는 로컬 프로시저를 지정합니다. 함수 특성으로 [local] 을 사용하는 것은 DCE IDL에 대한 Microsoft 확장입니다. 따라서 MIDL /osf 스위치를 사용하여 컴파일할 때는 이 특성을 사용할 수 없습니다.
특성이 없는 인터페이스를 기본 IDL 파일로 가져올 수 있습니다. 그러나 인터페이스는 프로시저가 없는 데이터 형식만 포함해야 합니다. 인터페이스에 프로시저가 하나라도 포함된 경우 로컬 또는 UUID 특성을 지정해야 합니다.
예
/* IDL file #1 */
[
local
]
interface local_procs
{
void MyLocalProc(void);
}
/* IDL file #2 */
[
object,
uuid(12345678-1234-1234-123456789ABC),
local
]
interface local_object_procs : IUnknown
{
void MyLocalObjectProc(void);
}
/* IDL file #3 */
[
uuid(87654321-1234-1234-123456789ABC)
]
interface mixed_procs
{
[local] void MyLocalProc(void);
HRESULT MyRemoteProc([in] short sParam);
}
참고 항목