IDL 파일

IDL 파일은 하나 이상의 인터페이스 정의로 구성되며 각 정의에는 헤더와 본문이 있습니다. 헤더에는 UUID와 같은 전체 인터페이스에 적용되는 정보가 포함되어 있습니다. 이 정보는 대괄호로 묶고 키워드(keyword) 인터페이스와 인터페이스 이름이 뒤따릅니다. 본문에는 네트워크를 통해 데이터가 전송되는 방식을 설명하는 특성으로 보강된 C 스타일 데이터 형식 정의 및 함수 프로토타입이 포함되어 있습니다.

이 예제에서 인터페이스 헤더에는 UUID 및 버전 번호만 포함됩니다. 버전 번호는 여러 버전의 RPC 인터페이스가 있는 경우 호환되는 버전의 클라이언트와 서버만 연결되도록 합니다.

인터페이스 본문에는 HelloProc에 대한 함수 프로토타입이 포함되어 있습니다. 이 프로토타입에서 함수 매개 변수 pszString에는 [in][string] 특성이 있습니다. [in] 특성은 런타임 라이브러리에 매개 변수가 클라이언트에서 서버로만 전달되도록 지시합니다. [string] 특성은 스텁이 매개 변수를 C 스타일 문자열로 처리해야 한다고 지정합니다.

클라이언트 애플리케이션은 서버 애플리케이션을 종료할 수 있어야 하므로 인터페이스에는 이 자습서의 뒷부분에서 구현될 다른 원격 함수인 Shutdown 에 대한 프로토타입이 포함되어 있습니다.

//file hello.idl
[
    uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),
    version(1.0)
]
interface hello
{
    void HelloProc([in, string] unsigned char * pszString);
    void Shutdown(void);
}