OFNHookProc

ขั้นตอนของ hook OFNHookProcมีฟังก์ชันการเรียกกลับโปรแกรมประยุกต์ หรือไลบรารีที่กำหนดเองที่ใช้กับลักษณะ Explorerเปิดและบันทึกเป็นทั่วไปกล่องโต้ตอบ ฟังก์ชันนี้ได้รับข้อความแจ้งเตือนที่ส่งจากกล่องโต้ตอบทั่วไป ฟังก์ชันยังได้รับข้อความสำหรับตัวควบคุมเพิ่มเติมใด ๆ ที่คุณได้กำหนดไว้ โดยการระบุแม่แบบโต้ตอบของลูก.

ชนิดLPOFNHOOKPROCกำหนดเป็นตัวชี้ไปยังฟังก์ชันนี้ติดต่อกลับ OFNHookProcคือตัวยึดสำหรับชื่อฟังก์ชันของโปรแกรมประยุกต์ที่กำหนดเอง หรือไลบรารีที่กำหนดเอง.

ถ้าคุณไม่ได้ระบุค่าสถานะ OFN_EXPLORER เมื่อคุณสร้างการเปิดหรือบันทึกเป็นทั่วไปกล่องโต้ตอบ และคุณต้องเป็นขั้นตอนของ hook คุณต้องใช้เป็นขั้นตอนของ hook OFNHookProcOldStyleแบบนี้ ในกรณีนี้ ในกล่องโต้ตอบจะมีส่วนติดต่อผู้ใช้แบบ.

(UINT ติดต่อกลับ OFNHookProc HWND  hdlg, / / จัดการหน้าต่างโต้ตอบเด็กUINTuiMsg, / / ข้อความที่ระบุWPARAMwParam, / / ความพารามิเตอร์LPARAMlParam / / ความพารามิเตอร์);
 

พารามิเตอร์

hdlg
จัดการกับกล่องโต้ตอบเด็กของกล่องโต้ตอบเปิดหรือบันทึกเป็น ใช้ฟังก์ชันGetParentเพื่อขอรับหมายเลขอ้างอิงเพื่อการเปิดหรือบันทึกเป็นช่องหน้าต่างโต้ตอบ.
uiMsg
ระบุข้อความได้รับ.
wParam
ระบุข้อมูลเพิ่มเติมเกี่ยวกับข้อความ ความหมายที่แน่นอนขึ้นกับค่าของพารามิเตอร์uiMsg.
lParam
ระบุข้อมูลเพิ่มเติมเกี่ยวกับข้อความ ความหมายที่แน่นอนขึ้นกับค่าของพารามิเตอร์uiMsg.

ถ้าพารามิเตอร์uiMsgบ่งชี้ความWM_INITDIALOG , lParamเป็นตัวชี้ไปยังประกอบด้วยOPENFILENAMEโครงสร้างที่ค่าที่ระบุเมื่อสร้างกล่องโต้ตอบ.

ส่งกลับค่า

ถ้าขั้นตอนของ hook ส่งกลับค่าศูนย์ ขั้นตอนเริ่มต้นกล่องโต้ตอบการประมวลผลข้อความ.

ถ้าขั้นตอนของ hook ส่งกลับค่าไม่ใช่ศูนย์ ขั้นตอนเริ่มต้นกล่องโต้ตอบการละเว้นข้อความ.

สำหรับข้อความแจ้งเตือนCDN_SHAREVIOLATIONและCDN_FILEOKขั้นตอนของ hook ควรส่งคืนค่าไม่ใช่ศูนย์เพื่อบ่งชี้ว่า จะได้ใช้ฟังก์ชันSetWindowLongเพื่อตั้งค่า DWL_MSGRESULT ไม่ใช่ศูนย์.

หมายเหตุ

เมื่อคุณใช้ฟังก์ชันGetOpenFileNameหรือGetSaveFileNameเพื่อสร้างเป็นลักษณะ Explorerเปิดหรือบันทึกเป็นทั่วไปกล่องโต้ตอบ คุณสามารถให้มีขั้นตอนของ hook OFNHookProc เมื่อต้องการเปิดการใช้งานในขั้นตอนของ hook ใช้โครงสร้างOPENFILENAMEที่คุณส่งไปยังฟังก์ชันสร้างการโต้ตอบ ระบุตัวชี้ไปยังขั้นตอนของ hook ในสมาชิกlpfnHookและระบุค่าสถานะ OFN_ENABLEHOOK ในสถานะสมาชิก.

ถ้าคุณมีขั้นตอนของ hook สำหรับกล่องโต้ตอบการหมาย Explorer-ลักษณะทั่วไป ระบบสร้างกล่องโต้ตอบที่เป็นลูกของกล่องโต้ตอบเริ่มต้น ขั้นตอนของ hook ทำหน้าที่เป็นกระบวนการโต้ตอบสำหรับกล่องโต้ตอบของลูก กล่องโต้ตอบนี้เด็กจะขึ้นกับแม่แบบที่คุณระบุไว้ในโครงสร้างOPENFILENAMEหรือเป็นเด็กเริ่มต้นกล่องโต้ตอบถ้ามีระบุแม่แบบไม่ กล่องโต้ตอบเด็กถูกสร้างเมื่อกระบวนการโต้ตอบเริ่มต้นกำลังประมวลผลข้อความของWM_INITDIALOG หลังจากที่กล่องโต้ตอบเด็กใช้ประมวลผลข้อความของตัวเอง WM_INITDIALOG กระบวนการโต้ตอบเริ่มต้นย้ายตัวควบคุมมาตรฐาน หากจำเป็น เพื่อให้มีที่ว่างสำหรับตัวควบคุมเพิ่มเติมของกล่องโต้ตอบของลูก ระบบส่งข้อความแจ้งเตือนCDN_INITDONEแล้วไปขั้นตอนของ hook.

ขั้นตอนของ hook ไม่ได้รับข้อความสำหรับตัวควบคุมมาตรฐานของกล่องโต้ตอบเริ่มต้น นอกจากนี้คุณยังระดับชั้นย่อยในการควบคุมมาตรฐาน แต่นี่จะท้อใจ เพราะมันอาจทำให้โปรแกรมประยุกต์ของคุณเข้ากันกับรุ่นของกล่องโต้ตอบทั่วไป อย่างไรก็ตาม กล่องโต้ตอบทั่วไปลักษณะ Explorer ให้ชุดของข้อความที่ขั้นตอนของ hook สามารถนำมาใช้ในการตรวจสอบ และควบคุมกล่องโต้ตอบ ประกอบด้วยชุดของข้อความแจ้งเตือนที่ส่งมาจากกล่องโต้ตอบ เช่นเดียวกับข้อความที่คุณสามารถส่งการเรียกข้อมูลจากกล่องโต้ตอบ สำหรับรายการทั้งหมดของข้อความเหล่านี้ ดูขั้นตอนของ Hook Explorer-ลักษณะ.

ถ้าขั้นตอนของ hook การประมวลผลข้อความWM_CTLCOLORDLGมันต้องส่งกลับหมายเลขอ้างอิงของแปรงที่ถูกต้องสำหรับการวาดภาพเป็นพื้นหลังของกล่องโต้ตอบ ทั่วไป ถ้าดำเนินกับข้อใด ๆ WM_CTLCOLOR ความ จะต้องส่งกลับหมายเลขอ้างอิงของแปรงที่ถูกต้องสำหรับการวาดภาพเป็นพื้นหลังของตัวควบคุมที่ระบุ.

เรียกใช้ฟังก์ชันEndDialogจากขั้นตอนของ hook แทน ขั้นตอนของ hook สามารถเรียกใช้ฟังก์ชันPostMessageเพื่อลงรายการบัญชีข้อความ WM_COMMAND ที่ มีค่า IDABORT ในกระบวนการกล่องโต้ตอบ IDABORT การลงรายการบัญชีปิดกล่องโต้ตอบ และการทำให้ฟังก์ชันในกล่องโต้ตอบเพื่อส่งกลับ FALSE ถ้าคุณจำเป็นต้องรู้ว่าทำไมขั้นตอนของ hook การปิดกล่องโต้ตอบ คุณต้องมีกลไกของการสื่อสารระหว่างขั้นตอนของ hook และโปรแกรมประยุกต์ของคุณ.

QuickInfo

nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ไม่สนับสนุน
หัวข้อ:ประกาศใน commdlg.h
ไลบรารีที่นำเข้า:ผู้ใช้กำหนด.

ดูเพิ่มเติม

ภาพรวมไลบรารีของกล่องโต้ตอบทั่วไปฟังก์ชันกล่องโต้ตอบทั่วไป GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME

Index