Partager via


Interface IPublishingWizard (shobjidl.h)

Expose les méthodes d’utilisation de l’Assistant Impression en ligne, de l’Assistant Publication Web et de l’Assistant Ajout d’un emplacement réseau. Dans Windows Vista, IPublishingWizard ne prend plus en charge l’Assistant Publication web ou l’Assistant Impression en ligne.

Héritage

L’interface IPublishingWizard hérite d’IWizardExtension. IPublishingWizard a également les types de membres suivants :

Méthodes

L’interface IPublishingWizard possède ces méthodes.

 
IPublishingWizard ::GetTransferManifest

Obtient un manifeste de transfert pour une opération de transfert de fichiers effectuée par un Assistant publication, comme l’Assistant Impression en ligne ou l’Assistant Ajout d’un emplacement réseau.
IPublishingWizard ::Initialize

Initialise l’objet Assistant Publication avec les fichiers à transférer, les paramètres à utiliser et le type d’Assistant à créer.

Remarques

L’Assistant Impression en ligne est un Assistant permettant de commander des tirages de photos en ligne. L’utilisation d’IPublishingWizard pour utiliser l’Assistant Impression en ligne n’est plus prise en charge dans Windows Vista.

L’Assistant Ajout d’un emplacement réseau permet à l’utilisateur de créer un raccourci vers les ressources réseau dans Mon réseau Places (dans Windows XP) ou Ordinateur (dans Windows Vista).

Windows Shell fournit un objet Assistant Publication qui implémente IPublishingWizard et IWizardExtension. Les méthodes de IPublishingWizard sont utilisées pour initialiser le type de l’Assistant, définir certains attributs de l’Assistant et récupérer un manifeste de transfert. Les méthodes d’IWizardExtension sont utilisées pour récupérer les pages d’extension qui composent le corps de l’Assistant sélectionné. Pour instancier l’objet Assistant Publication, appelez CoCreateInstance et utilisez l’identificateur de classe (CLSID) CLSID_PublishingWizard et IID_IPublishingWizard comme REFIID.

IPublishingWizard *pPublish = NULL;

HRESULT hr = CoCreateInstance(CLSID_PublishingWizard, 
                              NULL,
                              CLSCTX_INPROC_SERVER, 
                              IID_IPublishingWizard, 
                              (LPVOID*)&pPublish);

Une fois que l’objet Assistant Publication a été instancié, appelez IPublishingWizard ::Initialize pour initialiser l’objet De l’Assistant Publication.

Note Les exemples ci-dessous ne fonctionneront pas sur Windows Vista, car les méthodes IPublishingWizard ne prennent plus en charge l’Assistant Impression en ligne dans Windows Vista.
 
// Initializing the Online Print Wizard
                    
hr = pPublish->Initialize(pDataObject,
                          SHPWHF_NOFILESELECTOR,
                          L"InternetPhotoPrinting");
                          
// pDataObject: A data object that represents files or folders to transfer.
// SHPWHF_NOFILESELECTOR: This flag must be set.
// L"InternetPhotoPrinting": Display the Online Print Wizard.

Notez que IPublishingWizard ::Initialize n’affiche pas réellement l’Assistant. Pour afficher l’Assistant Impression en ligne, vous devez créer une structure PROPSHEETHEADER , puis modifier son membre phpage pour inclure le tableau de handles PROPSHEETPAGE retournés par IWizardExtension ::AddPages. IWizardExtension ::AddPages est implémenté par le même objet Assistant Publication qui implémente IPublishingWizard.

Si vous affichez l’Assistant Impression en ligne, l’indicateur PSH_NOMARGIN doit être défini dans le membre dwFlags de la structure PROPSHEETHEADER qui contient les pages d’extension.

En plus des pages d’extension récupérées à partir de IWizardExtension ::AddPages, le tableau phpage doit inclure une page de démarrage, une page d’annulation et une page de fin, fournies par votre application. Lorsque l’utilisateur annule ou annule l’extension, ou lorsque l’extension a fini d’afficher ses pages, l’extension communique ensuite à l’Assistant qu’elle doit naviguer hors de la pile des pages d’extension vers l’une de ces pages fournies par l’application. Votre application doit fournir une implémentation d’IWizardSite qui gère cette communication. Le site de l’objet IPublishingWizard doit être défini sur votre implémentation IWizardSite . La fonction IUnknown_SetSite peut être utilisée pour définir le site. Une fois que votre application a spécifié les paramètres de l’Assistant à l’aide de IPublishingWizard ::Initialize, renseigné correctement le membre phpage d’une structure PROPSHEETHEADER et défini le site sur une implémentation d’IWizardSite, l’Assistant peut être affiché en appelant la fonction PropertySheet .

/* This is example code demonstrating how to populate a PROPSHEETHEADER
structure and use it to display the Online Print Wizard.
This sample assumes that the PublishingWizard object has already
been instantiated and initialized elsewhere in the application. */

// Define the number of wizard pages that we expect to get from 
// the Publishing Wizard object. 
// The Online Print Wizard provides 6 predefined pages in Windows Vista,
// but provided 9 in Windows XP. 
#if NTDDI_VERSION >= NTDDI_VISTA
#define NUMPAGES 6  
#else
#define NUMPAGES 9
#endif

// Number of wizard pages supplied by the application in addition to 
// the predefined pages supplied by the Online Print Wizard. 
#define NUMNONEXTENSIONPAGES 3

// Array to hold the property sheets to display in the wizard,
// including both those returned by IPublishingWizard::AddPages()
// and those application-defined pages returned by IWizardSite methods.
HPROPSHEETPAGE hPropSheets[NUMPAGES + NUMNONEXTENSIONPAGES];

// Handles to the application-defined property sheets.
// This example assumes that they are initialized elsewhere in the application.
HPROPSHEETPAGE hPropSheetFinishPage = CreateFinishPage;
HPROPSHEETPAGE hPropSheetStartPage = CreateStartPage;
HPROPSHEETPAGE hPropSheetCanceledPage = CreateCanceledPage;

// Number of property sheets returned by IPublishingWizard::AddPages().
UINT uCount = 0;
INT_PTR retval = 0; // return value from PropertySheet
HRESULT hr;

// Property sheet header structure whose phpage member will receive
// the array of wizard pages retrieved from AddPages.
PROPSHEETHEADER psh;
psh.dwSize = sizeof(PROPSHEETHEADER);

// Set the PublishingWizard object's site to an IWizardSite implementation
// defined by your application.  
hr = IUnknown_SetSite(pIPublish, (IUnknown *)pWizSite);

// Fill the hPropSheets array with the pages of the wizard.
if SUCCEEDED(hr)
{
    hr = pIPublish->AddPages(&hPropSheets[0], NUMPAGES, &uCount);
}        

if SUCCEEDED(hr)
{
    // Define start, finish, and canceled pages elsewhere in your application.
    // Here, these pages are added after the extension pages.
    hPropSheets[uCount] = hPropSheetFinishPage;
    hPropSheets[uCount + 1] = hPropSheetCanceledPage;
    hPropSheets[uCount + 2] = hPropSheetStartPage;

    // Assign the array of property sheets.
    psh.phpage = hPropSheets;

    // Number of extension pages from AddPages + # of your own pages.
    psh.nPages = uCount + NUMNONEXTENSIONPAGES; 

    // The index into phpage where the first page to display is located.
    psh.nStartPage = 0;  

    // PSH_NOMARGIN must be specified for the Online Print Wizard.
    psh.dwFlags =  PSH_AEROWIZARD | PSH_WIZARD | PSH_NOMARGIN;
    psh.hwndParent = NULL;
    psh.hInstance = NULL;

    // Display the wizard.
    PropertySheet(&psh);
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP, Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shobjidl.h

Voir aussi

IWizardExtension

IWizardExtension ::AddPages

IWizardSite

PROPSHEETHEADER

Objet De l’Assistant Publication