Sto tentando di visualizzare la barra degli indirizzi dalla barra delle applicazioni di Windows nel mio WinForm. Posso ottenere il CLSID del toobar Address ({01E04581-4EEE-11d0-BFE9-00AA005B4383}
) e posso ottenere un riferimento a IDeskBand
. Ma ... allora cosa?Host IDeskBand in un Windows Form
Guid bandCLSID = new Guid("{01E04581-4EEE-11d0-BFE9-00AA005B4383}");
Type bandType = Type.GetTypeFromCLSID(bandCLSID);
IDeskBand deskband = (IDeskBand)Activator.CreateInstance(bandType);
ho provato lo ospita in un AxHost
, ma la barra degli strumenti indirizzo non è un controllo ActiveX. Ho provato a chiamare
(deskband as IOleObjectWithSite).SetSite(various interfaces);
o
(deskband as IDockingWindow).ShowDW(true);
così come varie altre interfacce e dei loro metodi, ma niente che faccio sembra di farmi da nessuna parte. Sarei felicissimo se potessi effettivamente vedere quella barra degli strumenti apparire ovunque. Ma non riesco a colmare il divario tra avere il riferimento IDeskBand
e collegarlo al mio Windows Form.
Qualcuno ha tentato questo prima, e ottenuto più lontano di me?
È possibile fornire ulteriori informazioni su quali funzionalità sono necessarie dalla barra degli indirizzi di DeskBand? Questa interfaccia è stata dichiarata obsoleta a partire da Windows 7, quindi potrebbe non essere supportata comunque nelle future versioni di Windows. –
Desidero essere in grado di inserire la mia Scrivania indirizzo e altri deskbands come Collegamenti o anche personalizzati, nel mio WinForm e visualizzarli come fanno sulla barra delle applicazioni. – deanis
Quindi forse non è un 'IDeskBand' che voglio implementare. Sono abbastanza sicuro che le barre degli indirizzi e dei collegamenti siano oggetti COM DeskBand, motivo per cui ho fatto il salto a 'IDeskBand'. Quindi quello che sto provando a fare è interrogare l'oggetto COM di destinazione, che posso fare per ottenere il Guid corrispondente, l'istanza, che faccio con 'Activator.CreateInstance'. Dove le cose stanno cadendo a pezzi per me è quando tento di fare il salto per ospitare l'oggetto COM nel mio WinForm. – deanis