Freigeben über


Onlinedruck-Assistent

Der Windows Vista-Onlinedruck-Assistent unterstützt Benutzer beim Bestellen von Fotoabdrucken bei teilnehmenden Onlinedruckhändlern. Dieser Assistent ist so konzipiert, dass er programmgesteuert von jeder Anwendung aufgerufen werden kann, die Benutzern die Möglichkeit bieten möchte, Drucke von Fotos zu bestellen. Der Fotodruck-Assistent ist unter Windows Vista verfügbar. PIX für Windows

Vom Onlinedruck-Assistenten bereitgestellte Features

Mit dem Windows Vista-Onlinedruck-Assistenten können Benutzer Drucke bei einer Auswahl teilnehmender Onlinedruckhändler bestellen. Wenn der Assistent aufgerufen wird:

  1. Akzeptiert eine Datei oder Liste von Dateien, für die Drucke bestellt werden sollen.
  2. Ruft automatisch die aktuelle Liste der teilnehmenden Onlinedruckhändler ab und ermöglicht es dem Benutzer, den Händler auszuwählen, bei dem die Fotodrucke erworben werden sollen.
  3. Führt den Benutzer durch den Prozess oder die Bestellung von Drucken.

Jede Anwendung kann von den Features des Windows Vista-Onlinedruck-Assistenten profitieren. Eine Anwendung muss nur die Datei oder Dateien übergeben, für die Drucke bestellt werden, und der Assistent führt den Benutzer durch den Bestellprozess.

Die folgende Abbildung zeigt den Windows Vista-Onlinedruck-Assistenten, der eine Beispielliste der teilnehmenden Onlinedruckhändler anzeigt.

Der Windows Vista-Onlinedruck-Assistent

Unterstützte Fotodateiformate

Der Windows Vista-Onlinedruck-Assistent unterstützt jedes Imagedateiformat, für das ein WIC-Codec (Windows Imaging Component) installiert ist. WIC bietet mehrere Standardcodecs, darunter:

  • Bitmap (BMP)
  • GIF (Graphics Interchange Format)
  • Symbolformat (ICO)
  • JPEG (Joint Photographic Experts Group)
  • PNG (Portable Network Graphics)
  • TIFF (Tagged Image File Format)
  • Windows Media Fotoformat

Weitere Informationen zu WIC- und WIC-Codecs finden Sie unter Windows-Bildverarbeitungskomponente.

Dateiformate, die von Onlinedruckhändlern unterstützt werden, variieren von Einzelhändler zu Einzelhändler; Es ist möglich, dass ein bestimmter Händler möglicherweise nicht alle vom Windows Vista-Onlinedruck-Assistenten unterstützten Dateiformate unterstützt. Wenn der Benutzer versucht, Drucke in einem Format zu bestellen, das vom ausgewählten Einzelhändler nicht unterstützt wird, benachrichtigt der Windows Vista-Onlinedruck-Assistent den Benutzer darüber, dass der ausgewählte Einzelhändler das übermittelte Dateiformat nicht unterstützt.

Programmgesteuertes Starten des Onlinedruck-Assistenten

Um den Windows Vista-Onlinedruck-Assistenten aufzurufen, rufen Sie die IDropTarget-Schnittstelle mit dem folgenden Klassenbezeichner (CLSID) auf:

CLSID_PublishDropTarget

Diese CLSID ist in Shobjidl.h und Shobjidl.idl definiert. Die vom Windows Vista-Onlinedruck-Assistenten zu verarbeitenden Dateien werden in einem IDataObject-Objekt angegeben.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie den Windows Vista-Onlinedruck-Assistenten aufrufen.

// A data object that contains the list of photos to print.
IDataObject* pDataObject;

// Create the Photo Printing Wizard drop target.
CComPtr<IDropTarget> spDropTarget;
        
hr = CoCreateInstance(CLSID_PublishDropTarget,
                      NULL,
                      CLSCTX_INPROC_SERVER,
                      IID_PPV_ARGS(&spDropTarget));

// Drop the data object onto the drop target.
POINTL pt = {0};
DWORD dwEffect = DROPEFFECT_LINK | DROPEFFECT_MOVE | DROPEFFECT_COPY;

spDropTarget->DragEnter(pDataObject, MK_LBUTTON, pt, &dwEffect);

spDropTarget->Drop(pDataObject, MK_LBUTTON, pt, &dwEffect);}

Zugreifen auf das Symbol des Onlinedruck-Assistenten

Der Windows Vista-Onlinedruck-Assistent exportiert ein Symbol, auf das von Anwendungen zugegriffen und angezeigt werden kann, die es aufrufen. Die folgende Abbildung zeigt das Windows Vista-Symbol für den Onlinedruck-Assistenten.

Das Symbol des Windows Vista-Onlinedruck-Assistenten

Im folgenden Codebeispiel wird veranschaulicht, wie Sie den Index für das Windows Vista-Onlinedruck-Assistent-Symbol abrufen, indem Sie die OPWIcon-Eigenschaft lesen.

// Create the Online Printing Wizard drop target.
CComPtr<IDropTarget> spDropTarget;
        
HRESULT hr = CoCreateInstance(CLSID_PublishDropTarget,
                              NULL,
                              CLSCTX_INPROC_SERVER,
                              IID_PPV_ARGS(&spDropTarget));

// Get the Online Printing Wizard properties.
CComPtr<IPropertyBag> spPropsBag;

spDropTarget->QueryInterface(IID_PPV_ARGS(&spPropsBag));

// Read the icon index from the properties set. 
CComVariant vtIcon;
int nIndex;
hr = spPropsBag->Read(L"OPWIcon", &vtIcon, NULL);

if SUCCEEDED(hr)
{
    nIndex = vtIcon.lVal;
}

MRU-Eigenschaften des Onlinedruck-Assistenten

Der Windows Vista-Onlinedruck-Assistent definiert drei Eigenschaften, die sich auf den zuletzt verwendeten Onlinedruckhändler (MRU) beziehen.

Eigenschaftenname Eigenschaftswert/Funktion
MRUIcon Der Index des Symbols für den zuletzt verwendeten Onlinedruckhändler kann aus dieser Eigenschaft gelesen werden.
MRUName Der Name des zuletzt verwendeten Onlinedruckhändlers kann aus dieser Eigenschaft gelesen werden.
UseMRU Ein VARIANT-VT_BOOL Wert, der angibt, ob der Assistent die Auswahlseite des Onlinedruckhändlers überspringen und stattdessen einfach den zuletzt verwendeten Onlinedruckhändler verwenden soll. Legen Sie diese Eigenschaft auf VARIANT_TRUE fest, um die Auswahlseite des Einzelhändlers zu überspringen.

 

Im folgenden Codebeispiel wird veranschaulicht, wie die UseMRU-Eigenschaft festgelegt wird, damit der Windows Vista-Onlinedruck-Assistent die Auswahlseite des Onlinedruckhändlers umgeht und automatisch den zuletzt verwendeten Händler auswählt.

// A data object that contains the list of photos to order prints for.
IDataObject* pDataObject;

// Create the Online Printing Wizard drop target.
CComPtr<IDropTarget> spDropTarget;
        
HRESULT hr = CoCreateInstance(CLSID_PublishDropTarget,
                              NULL,
                              CLSCTX_INPROC_SERVER,
                              IID_PPV_ARGS(&spDropTarget));

// Set the UserMRU property to true to skip retailer selection and use 
// the MRU retailer instead.    
CComQIPtr<IPropertyBag> spPropsBag(spDropTarget);
if(spPropsBag) 
{
    VARIANT varTrue = {0};
    varTrue.vt = VT_BOOL;
    varTrue.boolVal = VARIANT_TRUE;
    spPropsBag->Write(L"UseMRU", &varTrue);
}

// Drop the data object onto the drop target.
POINTL pt = {0};
DWORD dwEffect = DROPEFFECT_LINK | DROPEFFECT_MOVE | DROPEFFECT_COPY;

spDropTarget->DragEnter(pDataObject, MK_LBUTTON, pt, &dwEffect);

spDropTarget->Drop(pDataObject, MK_LBUTTON, pt, &dwEffect);

Im folgenden Codebeispiel wird veranschaulicht, wie die Eigenschaften MRUName und MRUIcon gelesen werden.

// Create the Online Printing Wizard drop target.
CComPtr<IDropTarget> spDropTarget;
        
HRESULT hr = CoCreateInstance(CLSID_PublishDropTarget,
                              NULL,
                              CLSCTX_INPROC_SERVER,
                              IID_PPV_ARGS(&spDropTarget));

// Get the Online Printing Wizard properties.
CComPtr<IPropertyBag> spPropsBag;
spDropTarget->QueryInterface(IID_PPV_ARGS(&spPropsBag));

CComVariant vtMRUName, vtMRUIconIndex;
CComBSTR bstrMRUName;
int nMRUIconIndex;

// Get the MRU name value.
hr = spPropsBag->Read(L"MRUName", &vtMRUName, NULL);
if SUCCEEDED(hr) 
{
    bstrMRUName = vtMRUName.bstrVal;
}

// Get the MRU icon index value.
hr = spPropsBag->Read(L"MRUIcon", &vtMRUIconIndex, NULL);
if SUCCEEDED(hr)
{
    nMRUIconIndex = vtMRUIconIndex.lVal;
}