MYSNAPINH และ MYSNAPINRGS ได้รับผลกระทบจากตัวเลือกบนหน้าสองแฟ้มเท่านั้น?
แต่ละเฟส จากIExtend *วิทยุกลุ่มปุ่ม ที่มีการตรวจสอบเพิ่มการประกาศของอินเทอร์เฟซที่เฉพาะเจาะจงไป CMySnapInComponent คลา ตัวอย่าง การเลือกอินเทอร์เฟซสำหรับIExtendControlbarเพิ่มบรรทัดต่อไปนี้เพื่อเริ่มต้นคลา member-wise:
สาธารณะ IExtendControlbarImplltCMySnapInComponent & gt
และบรรทัดต่อไปนี้เพื่อ CMySnapInComponent ของ แผนที่ COM:
COM_INTERFACE_ENTRY(IExtendControlbar)
การปรับเปลี่ยนที่คล้ายคลึงกัน CMySnapInComponent สำหรับชนิดของการเก็บรักษาที่เลือก?
นอกจากการแก้ไขข้างต้น วิธีการทั้งหมดของอินเทอร์เฟซการเก็บรักษาที่เลือกที่จะประกาศใน MYSNAPINH.ตัวอย่าง เพิ่มรหัสต่อไปนี้หากคุณเลือกIPersistStorageเป็นชนิดของการเก็บรักษา:
STDMETHOD(GetClassID)(CLSID *pClassID)
{
nbsp ATLTRACENOTIMPL(_T("CMySnapInComponent::GetClassID"))
}
วิธี IPersistStorage //additional
...
เสมือน hresult ใน STDMETHODCALLTYPE HandsOffStorage()
{
ATLTRACENOTIMPL(_T("CMySnapInComponent::HandsOffStorage"))
}(&N)
การปรับเปลี่ยนของคุณจะเหมือนกันสำหรับการ CMySnapIn คลาส?
ถ้ามีเลือกอินเทอร์เฟซสำหรับISnapInAboutถูกประกาศคลาสแยกต่างหาก ( CMySnapInAbout ), และมีประกาศวิธีการมาตรฐาน?
ถ้า snap-in ใน รูปนาม snap-in ในสกุล อยู่RGS แฟ้มที่สร้างขึ้น โดยตัวช่วยสร้างจะแตกต่างจากค่าเริ่มต้นเล็กน้อย โดยเฉพาะ สอง portions ใน NoRemove MMC ส่วนจะถูกปรับเปลี่ยนการเชื่อมโยงวัตถุสแนปอินส่วนขยาย ด้วยการขยาย snap-in ในวัตถุ?
ตัวอย่าง ตัวอย่างส่วนต่อไปนี้ได้จากการเริ่มต้นสแน็ปอินของวัตถุแฟ้ม RGS:
NoRemove MMC
nbsp {
NoRemove Snapins
{
ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436 } =
'MySnapIn' s {
val NameString = 'MySnapIn' s
val เกี่ยวกับ = '{ACC4CCCE-8C61-11D1-B017-00C04FB99436 }' s
NodeTypes
{
{ACC4CCCF-8C61-11D1-B017-00C04FB99436 }
}
StandAlone
}
}
NoRemove NodeTypes
{
ForceRemove {ACC4CCCF-8C61-11D1-B017-00C04FB99436 }
{
}
}
}(&N)
อย่างไรก็ตาม สำหรับขยายสแนปอิน NoRemove MMC ส่วนที่แตกต่าง:
NoRemove MMC
{
NoRemove Snapins
{
ForceRemove {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
{
val NameString = s 'MySnapInDataExt1'
val About = s '{ACC4CCD6-8C61-11D1-B017-00C04FB99436}'
}
}
NoRemove NodeTypes
{
NoRemove {}
{
NoRemove Extensions
{
NoRemove PropertySheet
{
val {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
}
NoRemove ToolBar
{
val {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
}
}
}
}
}