次の方法で共有


IPublishingWizard インターフェイス (shobjidl.h)

オンライン印刷ウィザード、Web 発行ウィザード、およびネットワーク配置の追加ウィザードを操作するためのメソッドを公開します。 Windows Vista では、 IPublishingWizard は Web 発行ウィザードまたはオンライン印刷ウィザードをサポートしなくなりました。

継承

IPublishingWizard インターフェイスは、IWizardExtension から継承されます。 IPublishingWizard には、次の種類のメンバーもあります。

メソッド

IPublishingWizard インターフェイスには、これらのメソッドがあります。

 
IPublishingWizard::GetTransferManifest

オンライン印刷ウィザードやネットワーク配置の追加ウィザードなど、発行ウィザードによって実行されるファイル転送操作の転送マニフェストを取得します。
IPublishingWizard::Initialize

転送するファイル、使用する設定、作成するウィザードの種類を使用して、発行ウィザード オブジェクトを初期化します。

注釈

オンライン印刷ウィザードは、写真の印刷をオンラインで注文するためのウィザードです。 IPublishingWizard を使用してオンライン印刷ウィザードを操作することは、Windows Vista ではサポートされなくなりました。

ネットワーク配置の追加ウィザードを使用すると、ユーザーはマイ ネットワーク Places (Windows XP) またはコンピューター (Windows Vista の場合) でネットワーク リソースへのショートカットを作成できます。

Windows シェルには、IPublishingWizardIWizardExtension を実装する発行ウィザード オブジェクトが用意されています。 IPublishingWizard のメソッドは、ウィザードの種類の初期化、ウィザードの特定の属性の設定、および転送マニフェストの取得に使用されます。 IWizardExtension のメソッドは、選択したウィザードの本文を構成する拡張ページを取得するために使用されます。 発行ウィザード オブジェクトをインスタンス化するには、CoCreateInstance を呼び出し、クラス識別子 (CLSID) CLSID_PublishingWizardを使用し、REFIID としてIID_IPublishingWizardします。

IPublishingWizard *pPublish = NULL;

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

発行ウィザード オブジェクトがインスタンス化されたら、IPublishingWizard::Initialize を呼び出して発行ウィザード オブジェクトを初期化します

メモIPublishingWizard メソッドは Windows Vista のオンライン印刷ウィザードをサポートしなくなったため、次の例は 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.

IPublishingWizard::Initialize は実際にはウィザードを表示しないことに注意してください。 オンライン印刷ウィザードを表示するには、PROPSHEETHEADER 構造体を作成し、その phpage メンバーを変更して、IWizardExtension::AddPages によって返される PROPSHEETPAGE ハンドルの配列を含める必要があります。 IWizardExtension::AddPages は、IPublishingWizard を実装するのと同じ発行ウィザード オブジェクトによって実装されます。

オンライン印刷ウィザードを表示する場合は、拡張ページを含む PROPSHEETHEADER 構造体の dwFlags メンバーにPSH_NOMARGIN フラグを設定する必要があります。

IWizardExtension::AddPages から取得された拡張ページに加えて、phpage 配列には、アプリケーションによって提供されるスタート ページ、キャンセル ページ、および終了ページが含まれている必要があります。 ユーザーが拡張機能を元に戻すか取り消したとき、または拡張機能がページの表示を終了すると、拡張機能はウィザードに対して、拡張機能ページのスタックからこれらのアプリケーションが提供するページのいずれかに移動する必要があることを通知します。 アプリケーションでは、この通信を処理する IWizardSite の実装を指定する必要があります。 IPublishingWizard オブジェクトのサイトは、IWizardSite 実装に設定する必要があります。 IUnknown_SetSite関数を使用してサイトを設定できます。 アプリケーションで IPublishingWizard::Initialize を使用してウィザード設定を指定し、PROPSHEETHEADER 構造体の phpage メンバーを適切に設定し、サイトを IWizardSite の実装に設定すると、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);
}

要件

要件
サポートされている最小のクライアント Windows XP、Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shobjidl.h

こちらもご覧ください

IWizardExtension

IWizardExtension::AddPages

IWizardSite

PROPSHEETHEADER

発行ウィザード オブジェクト