Sdílet prostřednictvím


Plug-in obsluha rozhraní

Můžete napsat zásuvný modul obslužné rutiny rozhraní, který poskytuje programový přístup v uživatelském režimu k sadě vlastností specifických pro ovladač, kterou vystavuje minidriver KS. Nejprve zaregistrujte objekt, jak je popsáno v registraci modulů plug-in proxy serveru KS.

Vaše třída modulu plug-in rozhraní může být odvozena z CUnknown:

class CMyPluginInterface : public CUnknown
{
public:
    // creation method
    static CUnknown* CALLBACK CreateInstance( LPUNKNOWN piOuterUnknown, HRESULT* phResult );
private:
 CMyPluginInterface( IKsPropertySet* piKsPropertySet );
    IKsPropertySet* m_piKsPropertySet;
};

Plug-in rozhraní je rozhraní COM poskytované dodavatelem, které se při vytváření agreguje s proxy KS poskytovanou MS.

Konkrétně Metoda CreateInstance modulu plug-in obdrží ukazatel na proxy KS jako vnější neznámý.

Tento externí objekt můžete poté dotazovat pro ukazatel do rozhraní IKsPropertySet poskytnutého společností MS:

hResult = piOuterUnknown->QueryInterface(
                __uuidof( piKsPropertySet ),
                 &piKsPropertySet );

Pak z CreateInstance vyvoláte konstruktor rozhraní k vytvoření instance objektu obslužné rutiny rozhraní.

Zadejte ukazatel na IKsPropertySet jako parametr v vyvolání konstruktoru. Konstruktor pak zachová ukazatel na iKsPropertySet jako členskou proměnnou m_piKsPropertySet v předchozí deklaraci.

Nyní můžete implementovat metody Get a Set ve třídě, které volají IKsPropertySet::Get a IKsPropertySet::Set a tím manipulují s vlastnostmi, které jsou vystaveny ovladačem.

Případně můžete zadat dotaz na vnější neznámý ukazatel na jeho rozhraní IKsObject . Zavolejte poté IKsObject::KsGetObjectHandle, abyste získali popisovač souboru. Nyní pracujete s vlastnostmi zařízení voláním KsSynchronousIoControlDevice s tímto popisovačem souboru.