다음을 통해 공유


구성 요소에 대한 속성 페이지 만들기

notify 개체는 네트워크 구성 하위 시스템이 notify 개체의 INetCfgComponentPropertyUi::MergePropPages 메서드를 호출한 후 사용자 지정 속성 페이지를 만듭니다. MergePropPages 메서드를 사용하여 구성 요소의 속성 시트에 있는 기본 페이지 집합에 사용자 지정 속성 페이지를 병합할 수 있습니다. MergePropPages 는 사용자 지정 페이지를 병합할 수 있는 적절한 수의 기본 페이지를 반환합니다.

사용자 지정 속성 페이지를 만들기 위해 MergePropPages 는 COM CoTaskMemAlloc 함수를 호출하여 PROPSHEETPAGE 구조에 대한 핸들에 대한 메모리를 할당합니다. 이러한 각 핸들은 만들 속성 페이지를 나타냅니다. CoTaskMemAlloc가 핸들에 대한 메모리를 성공적으로 할당하면 MergePropPages는 각 속성 페이지에 대해 PROPSHEETPAGE 구조를 선언하고 채웁니다. MergePropPages가 이러한 구조를 채운 후 각 속성 페이지에 대해 Win32 CreatePropertySheetPage 함수를 호출합니다. 이 호출에서 MergePropPages는 만들 PROPSHEETPAGE 구조체의 주소를 전달합니다.

MergePropPages에서 만드는 각 속성 페이지에 대해 대화 상자 콜백 함수도 구현해야 합니다. 대화 상자 콜백 함수는 운영 체제가 해당 대화 상자 함수와 연결된 속성 페이지로 보내는 메시지를 처리합니다. 속성 페이지를 대화 상자 함수와 연결하려면 MergePropPages 는 각 페이지에 대한 각 PROPSHEETPAGE 구조의 pfnDlgProc 멤버를 페이지의 대화 상자 함수로 가리킵니다.

대화 상자 함수는 다음 메시지를 처리합니다.

  • 운영 체제가 연결된 속성 페이지를 표시하기 직전에 대화 상자 함수로 전송되는 WM_INITDIALOG 메시지입니다. 대화 상자 함수는 일반적으로 이 메시지를 사용하여 속성 페이지를 초기화하고 속성 페이지의 모양에 영향을 주는 작업을 수행합니다.

  • 속성 페이지에서 이벤트가 발생한 후 대화 상자 함수로 전송되는 WM_NOTIFY 메시지입니다. 이 메시지와 함께 전송된 다른 정보는 발생한 이벤트를 식별합니다. 이 이벤트 정보는 NMHDR 구조체에 대한 포인터에 포함되어 있습니다. 속성 시트에 대해 NMHDR이 포함할 수 있는 정보는 다음과 같습니다.

    • 사용자가 속성 페이지에서 확인, 닫기 또는 적용을 클릭했음을 나타내는 PSN_APPLY 이벤트입니다. 사용자가 확인, 닫기 또는 적용을 클릭하면 대화 상자 함수가 PropSheet_Changed 매크로를 호출하여 페이지의 정보가 변경되었음을 속성 시트에 알릴 수 있습니다. 이 호출에서 dialog-box 함수는 핸들을 속성 시트 및 페이지에 전달합니다. 대화 상자 함수는 Win32 GetParent 함수를 호출하고 핸들을 페이지에 전달하여 속성 시트에 대한 핸들을 검색할 수 있습니다.

      대화 상자 함수가 속성 시트에 변경 내용을 알리면 네트워크 구성 하위 시스템은 INetCfgComponentPropertyUi::ValidateProperties 메서드를 호출하여 모든 변경 내용의 유효성을 검사. 모든 변경 내용이 유효한 경우 하위 시스템은 notify 개체의 INetCfgComponentPropertyUi::ApplyProperties 메서드를 호출하여 모든 변경 내용을 적용합니다. 네트워크 구성 하위 시스템은 운영 체제가 대화 상자를 닫기 전에 ApplyProperties 를 호출합니다.

      ApplyProperties 메서드를 구현하여 사용자가 입력하는 정보를 검색하고 정보를 알림 개체의 데이터 멤버로 설정할 수 있습니다.

    • 운영 체제가 속성 페이지를 삭제하려고 했음을 나타내는 PSN_RESET 이벤트입니다. 사용자가 속성 페이지에서 취소를 클릭하여 이 작업을 시작할 수 있습니다. 사용자가 취소를 클릭하면 네트워크 구성 하위 시스템은 INetCfgComponentPropertyUi::CancelProperties 메서드를 호출하여 모든 변경 내용을 무시합니다. 네트워크 구성 하위 시스템은 대화 상자를 닫기 전에 CancelProperties 를 호출합니다.

    • 속성 페이지가 비활성 상태가 될 것임을 나타내는 PSN_KILLACTIVE 이벤트입니다. 이 이벤트는 사용자가 다른 페이지를 활성화하거나 확인을 클릭할 때 발생합니다.

MergePropPages에서 만드는 각 속성 페이지에 대해 속성 페이지 콜백 함수를 구현할 수도 있습니다. 속성 페이지 콜백 함수는 페이지에 대한 초기화 및 정리 작업을 수행합니다. 속성 페이지를 속성 페이지 콜백 함수와 연결하려면 MergePropPages 는 각 페이지에 대한 각 PROPSHEETPAGE 구조의 pfnCallback 멤버를 해당 페이지의 속성 페이지 콜백 함수로 가리킵니다.

자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

  • 속성 페이지에 대한 속성 페이지 및 구조, 함수 및 알림 만들기

  • dialog-box 콜백 프로시저, 메시지 및 구조