자동 바인딩 핸들

자동 바인딩 핸들은 애플리케이션에 특정 서버가 필요하지 않고 클라이언트와 서버 간에 상태 정보를 유지할 필요가 없는 경우에 유용합니다. 자동 바인딩 핸들을 사용하는 경우 바인딩 및 핸들을 처리하기 위해 클라이언트 애플리케이션 코드를 작성할 필요가 없습니다. 단순히 ACF(애플리케이션 구성 파일)에서 자동 바인딩 핸들의 사용을 지정하기만 하면 됩니다. 그런 다음 스텁은 핸들을 정의하고 바인딩을 관리합니다.

예를 들어 자동 핸들을 사용하여 타임스탬프를 구현할 수 있습니다. 사용 가능한 모든 서버에서 시간을 허용할 수 있으므로 서버에서 타임스탬프를 제공하는 클라이언트 애플리케이션에는 차이가 없습니다.

참고

자동 핸들은 Macintosh 플랫폼에서 지원되지 않습니다.

 

ACF에 [auto_handle] 특성을 포함하여 자동 핸들 사용을 지정합니다. 타임스탬프 예제에서는 다음 ACF를 사용합니다.

/* ACF file */
[
  auto_handle
]
interface autoh
{
}

ACF에 다른 핸들 특성이 포함되지 않고 원격 프로시저에서 명시적 핸들을 사용하지 않는 경우 MIDL 컴파일러는 기본적으로 자동 핸들을 사용합니다. 또한 ACF가 없는 경우 자동 핸들을 기본값으로 사용합니다.

원격 프로시저는 IDL 파일에 지정됩니다. 자동 핸들은 원격 프로시저에 대한 인수로 표시되지 않아야 합니다. 예:

/* IDL file */
[ 
  uuid (6B29FC40-CA47-1067-B31D-00DD010662DA),
  version(1.0),
  pointer_default(unique)
]
interface autoh
{
  void GetTime([out] long * time);
  void Shutdown(void);
}

자동 핸들의 이점은 개발자가 핸들을 관리하기 위해 코드를 작성할 필요가 없다는 것입니다. 스텁은 바인딩을 자동으로 관리합니다. 이는 클라이언트가 ACF에 정의된 암시적 기본 핸들을 관리하고 바인딩 핸들을 설정하기 위해 여러 런타임 함수를 호출해야 하는 Hello, World 예제와 크게 다릅니다.