De foredrag jeg har holdt de sidste par måneder omkring VSTO har alle indeholdt slides omkring et specielt problem (nogen vil kalde det en udfordring) i VSTO add-ins til Word, InfoPath og Outlook. Kort fortalt handler det om, at de tre applikationer benytter SDI-brugerflade (Single Document Interface) hvilket giver en del bøvl i forbindelse med VSTO add-ins fordi man selv er nødt til at holde styr på hvor mange dokumenter af eksempelvis Word der er kørende. Det komplicere i den grad brugen af ctp (custom task pane) og synkronisering af disse med ribbon.
For at få en ide om problemet så
- Lav en Word-add in
- Tilføj en custom task pane med en eller anden kontrol i App_Start (sæt task pane's visible=true)
- Tryk F5. Word starter og den nye ctp vises
- Start nu en ny instans af Word fra Start-menuen i Word eller Windows
- Bemærk at et nyt dokument startes og den forventede ctp ikke vises
Bemærk: Man vil normalt ikke vise en ctp i app_start - det bør sker gennem ribbon. Det er blot et eksempel.
Der har været en del røre om problemet, og flere er kommet med diverse løsninger (flere VSTO sessioner på TechEd i Barcelona for et par måneder siden havde info netop om dette).
Der er nu kommet en officiel MSDN artikel om hvordan man kan løse problemet
Managing Task Panes in Multiple Word and InfoPath Documents
Jeg har endnu ikke selv haft tiden til at læse den men vil alligevel nævne det her fordi jeg ved der er flere som kæmper med problemet.