Ghidul complet al idiotului pentru scrierea extensiilor de coajă face parte din v

În a cincea parte a manualului, îndrăznim să privim în lumea ferestrelor de proprietate. Când afișați proprietățile obiectelor de sistem de fișiere, Explorer le afișează pe pagina "Generalități". Shell-ul ne permite să extindem fereastra cu setări de proprietăți folosind un tip de extensie numit manipulator de coli de proprietăți.

Property Handler de setare

Toți sunt familiarizați cu ferestrele proprietăților Explorer. Mai exact, acesta este un set de proprietăți care conține una sau mai multe pagini. Fiecare set de proprietăți are o pagină "Generală" care afișează calea completă, data modificării și alte informații. Exploratorul ne permite să adăugăm propriile pagini la setul de proprietăți utilizând extensia - dispozitivul de setare a proprietăților. Funcția de setare a proprietăților poate adăuga sau înlocui paginile de proprietăți pentru anumite elemente din panoul de control, dar acest subiect nu va fi luat în considerare aici.

Dacă vă uitați la proprietățile pentru fișierele * .URL (comenzi rapide pentru paginile de internet), puteți vedea acțiunea de configurare a setului de proprietăți. Fila "CodeProject" este un bun exemplu de extensie din acest articol. Fila "Document Web" afișează extensia instalată de IE.

Ghidul complet al idiotului pentru scrierea extensiilor de coajă face parte din v

Utilizând AppWizard

În expertul ATL Object Wizard, primul panou are deja un obiect simplu, deci faceți clic pe Următorul. În cel de-al doilea panou, în caseta de editare a textului scurt, tastați numele scurt FileTimeShlExt și faceți clic pe OK. (Restul câmpurilor sunt completate automat.) Am creat clasa CFileTimeShlExt. care conține codul principal pentru implementarea obiectului COM. Adăugați codul la această clasă.

Interfață de inițializare

Deoarece agentul de setare a proprietăților funcționează simultan pe toate fișierele selectate, IShellExtInit este utilizat ca interfață de inițializare. Trebuie să adăugăm IShellExtInit la lista interfețelor care implementează CFileTimeShlExt. Instrucțiuni despre cum se face acest lucru sunt conținute în partea IV. De asemenea, clasa are nevoie de o listă de șiruri de caractere, în care numele fișierelor selectate vor fi stocate.

S-ar putea să observați că GUID-ul de extensie este stocat aici ca nume al cheii de registry în loc de o valoare de șir. Documentația și cărțile pe care le priveam se contrazic reciproc cu privire la desemnarea corectă, deși în timpul testelor mele rapide au funcționat ambele opțiuni. Am decis să urmez calea lui Dino Esposito ("Visual C ++ Windows Shell Programming") și a pus GUID ca nume cheie.

A continua.

În Partea VI, vom examina un alt tip de extensie nouă: dispozitivul de preluare a drop-urilor, care se încarcă atunci când obiectele shell sunt aruncate pe fișier.