다음을 통해 공유


handle 특성

[handle] 특성은 사용자 정의 또는 "사용자 지정된" 핸들 형식을 지정합니다.

typedef [handle] typename;  
handle_t __RPC_USER typename_bind (typename);
void __RPC_USER typename_unbind (typename, handle_t);

매개 변수

Typename

사용자 정의 바인딩 핸들 형식의 이름을 지정합니다.

설명

사용자 정의 핸들을 사용하면 개발자가 애플리케이션에 의미 있는 핸들을 디자인할 수 있습니다. 사용자 정의 핸들은 함수 선언자가 아닌 형식 선언에서만 정의할 수 있습니다.

[handle] 특성으로 정의된 형식의 매개 변수는 호출에 대한 바인딩을 결정하는 데 사용되며 호출된 프로시저로 전송됩니다.

사용자는 기본 핸들 형식과 사용자 정의 핸들 형식 간에 변환할 바인딩 및 바인딩 해제 루틴을 제공해야 합니다. typename 형식의 사용자 정의 핸들이 제공되면 사용자는 typename_bindtypename_unbind 루틴을 제공해야 합니다. 예를 들어 사용자 정의 핸들 형식의 이름이 MYHANDLE인 경우 루틴 이름은 MYHANDLE_bind 이고 MYHANDLE_unbind입니다.

성공하면 typename_bind 루틴은 유효한 기본 바인딩 핸들을 반환해야 합니다. 실패하면 루틴은 NULL을 반환해야 합니다. 루틴이 NULL을 반환하는 경우 typename_unbind 루틴이 호출되지 않습니다. 바인딩 루틴이 NULL과 다른 잘못된 바인딩 핸들을 반환하는 경우 스텁 동작은 정의되지 않습니다.

원격 프로시저에 매개 변수 또는 암시적 핸들로 사용자 정의 핸들이 있는 경우 클라이언트 스텁은 원격 프로시저를 호출하기 전에 바인딩 루틴을 호출합니다. 클라이언트 스텁은 원격 호출 후 바인딩 해제 루틴을 호출합니다.

DCE IDL에서 [handle] 특성이 있는 매개 변수가 원격 프로시저 인수 목록의 첫 번째 매개 변수로 나타나야 합니다. 다른 [handle] 특성을 포함한 후속 매개 변수는 일반 매개 변수로 처리됩니다. Microsoft는 사용자 정의 [handle] 매개 변수가 첫 번째 매개 변수가 아닌 위치에 표시할 수 있도록 DCE IDL에 대한 확장을 지원합니다.

typedef [handle] struct 
{ 
    char machine[8]; 
    char nmpipe[256]; 
} h_service; 
 
handle_t __RPC_USER h_service_bind(h_service); 
void __RPC_USER h_service_unbind(h_service, handle_t);

참고 항목

바인딩 및 핸들

IDL(인터페이스 정의) 파일

implicit_handle

Typedef