IPublishingWizard-Schnittstelle (shobjidl.h)

Macht Methoden für die Arbeit mit dem Onlinedruck-Assistenten, dem Webveröffentlichungs-Assistenten und dem Assistenten zum Hinzufügen von Netzwerkplatzen verfügbar. In Windows Vista unterstützt IPublishingWizard den Webveröffentlichungs-Assistenten oder den Onlinedruck-Assistenten nicht mehr.

Vererbung

Die IPublishingWizard-Schnittstelle erbt von IWizardExtension. IPublishingWizard verfügt auch über diese Arten von Membern:

Methoden

Die IPublishingWizard-Schnittstelle verfügt über diese Methoden.

 
IPublishingWizard::GetTransferManifest

Ruft ein Übertragungsmanifest für einen Dateiübertragungsvorgang ab, der von einem Veröffentlichungs-Assistenten ausgeführt wird, z. B. dem Onlinedruck-Assistenten oder dem Assistenten zum Hinzufügen von Netzwerkplatz.
IPublishingWizard::Initialize

Initialisiert das Veröffentlichungs-Assistent-Objekt mit den zu übertragenden Dateien, den zu verwendenden Einstellungen und dem Typ des zu erstellenden Assistenten.

Hinweise

Der Onlinedruck-Assistent ist ein Assistent zum Online-Bestellen von Fotoabzügen. Die Verwendung von IPublishingWizard für die Arbeit mit dem Onlinedruck-Assistenten wird in Windows Vista nicht mehr unterstützt.

Der Assistent zum Hinzufügen von Netzwerkplatz ermöglicht es dem Benutzer, eine Verknüpfung zu Netzwerkressourcen in "Mein Netzwerk" Places (windows XP) oder "Computer" (in Windows Vista) zu erstellen.

Die Windows-Shell stellt ein Veröffentlichungs-Assistent-Objekt bereit, das IPublishingWizard und IWizardExtension implementiert. Die Methoden von IPublishingWizard werden verwendet, um den Typ des Assistenten zu initialisieren, bestimmte Attribute des Assistenten festzulegen und ein Übertragungsmanifest abzurufen. Die Methoden von IWizardExtension werden verwendet, um die Erweiterungsseiten abzurufen, die den Text des ausgewählten Assistenten bilden. Um das Veröffentlichungs-Assistent-Objekt zu instanziieren, rufen Sie CoCreateInstance auf, und verwenden Sie den Klassenbezeichner (CLSID) CLSID_PublishingWizard und IID_IPublishingWizard als REFIID.

IPublishingWizard *pPublish = NULL;

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

Nachdem das Veröffentlichungs-Assistent-Objekt instanziiert wurde, rufen Sie IPublishingWizard::Initialize auf, um das Veröffentlichungs-Assistent-Objekt zu initialisieren.

Hinweis Die folgenden Beispiele funktionieren unter Windows Vista nicht, da die IPublishingWizard-Methoden den Onlinedruck-Assistenten in Windows Vista nicht mehr unterstützen.
 
// 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.

Beachten Sie, dass IPublishingWizard::Initialize den Assistenten nicht anzeigt. Um den Onlinedruck-Assistenten anzuzeigen, müssen Sie eine PROPSHEETHEADER-Struktur erstellen und dann deren phpage-Member so ändern, dass das Array von PROPSHEETPAGE-Handles eingeschlossen wird, die von IWizardExtension::AddPages zurückgegeben werden. IWizardExtension::AddPages wird vom gleichen Veröffentlichungs-Assistentenobjekt implementiert, das IPublishingWizard implementiert.

Wenn der Onlinedruck-Assistent angezeigt wird, sollte das PSH_NOMARGIN-Flag im dwFlags-Element der PROPSHEETHEADER-Struktur festgelegt werden, die die Erweiterungsseiten enthält.

Zusätzlich zu den Erweiterungsseiten, die von IWizardExtension::AddPages abgerufen werden, sollte das phpage-Array eine Startseite, eine Abbruchseite und eine Fertigseite enthalten, die von Ihrer Anwendung bereitgestellt werden. Wenn der Benutzer die Erweiterung beendet oder die Erweiterung beendet, oder wenn die Erweiterung ihre Seiten anzeigt, teilt die Erweiterung dem Assistenten mit, dass sie aus dem Stapel der Erweiterungsseiten zu einer dieser von der Anwendung bereitgestellten Seiten navigieren muss. Ihre Anwendung muss eine Implementierung von IWizardSite bereitstellen, die diese Kommunikation verarbeitet. Die Website des IPublishingWizard-Objekts muss auf Ihre IWizardSite-Implementierung festgelegt werden. Die funktion IUnknown_SetSite kann verwendet werden, um die Website festzulegen. Nachdem Ihre Anwendung die Assistenteneinstellungen mithilfe von IPublishingWizard::Initialize angegeben, den phpage-Member einer PROPSHEETHEADER-Struktur ordnungsgemäß aufgefüllt und die Website auf eine Implementierung von IWizardSite festgelegt hat, wird der Assistent möglicherweise durch Aufrufen der PropertySheet-Funktion angezeigt.

/* 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);
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP, Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl.h

Weitere Informationen

IWizardExtension

IWizardExtension::AddPages

IWizardSite

PROPSHEETHEADER

Veröffentlichungs-Assistent-Objekt