Partilhar via


Assistente de Impressão Online

O Assistente de Impressão Online do Windows Vista ajuda os usuários a solicitar impressões de fotos de varejistas de impressão online participantes. Este assistente foi projetado para que possa ser invocado programaticamente por qualquer aplicativo que queira oferecer aos usuários a capacidade de solicitar impressões de fotos. O Assistente de Impressão de Fotos está disponível no Windows Vista. PIX para Windows

Recursos fornecidos pelo Assistente de impressão on-line

O Assistente de Impressão Online do Windows Vista permite que os usuários solicitem impressões de uma seleção de varejistas de impressão online participantes. Quando invocado, o assistente:

  1. Aceita um arquivo ou lista de arquivos para os quais as impressões devem ser encomendadas.
  2. Recupera automaticamente a lista atual de varejistas de impressão on-line participantes e permite que o usuário selecione o varejista do qual comprar as impressões fotográficas.
  3. Orienta o utilizador através do processo ou encomenda de impressões.

Qualquer aplicativo pode se beneficiar dos recursos oferecidos pelo Assistente de Impressão Online do Windows Vista. Um aplicativo só precisa passar o arquivo ou arquivos para os quais as impressões serão solicitadas, e o assistente orienta o usuário através do processo de pedido.

A figura a seguir mostra o Assistente de Impressão Online do Windows Vista exibindo uma lista de exemplo de varejistas de impressão online participantes.

o Assistente de impressão online do Windows Vista

Formatos de arquivo de foto suportados

O Assistente de Impressão Online do Windows Vista suporta qualquer formato de ficheiro de imagem para o qual esteja instalado um codec WIC (Windows Imaging Component). O WIC fornece vários codecs padrão, incluindo:

  • Bitmap (BMP)
  • GIF (Graphics Interchange Format)
  • Formato de ícone (ICO)
  • Grupo Conjunto de Peritos Fotográficos (JPEG)
  • Gráficos de rede portáteis (PNG)
  • Formato de arquivo de imagem com tags (TIFF)
  • Formato de foto do Windows Media

Para obter mais informações sobre codecs WIC e WIC, consulte Windows Imaging Component.

Os formatos de ficheiro suportados pelos retalhistas de impressão online variam de retalhista para retalhista; é possível que um determinado revendedor não suporte todos os formatos de arquivo suportados pelo Assistente de Impressão Online do Windows Vista. Se o usuário tentar solicitar impressões em um formato que não é suportado pelo varejista selecionado, o Assistente de Impressão Online do Windows Vista notificará o usuário de que o varejista selecionado não oferece suporte ao formato de arquivo enviado.

Iniciando programaticamente o Assistente de impressão on-line

Para invocar o Assistente de Impressão Online do Windows Vista, chame o IDropTarget interface com o seguinte identificador de classe (CLSID):

CLSID_PublishDropTarget

Este CLSID é definido em Shobjidl.h e Shobjidl.idl. Os arquivos a serem processados pelo Assistente de impressão online do Windows Vista são especificados em um IDataObject objeto.

O exemplo de código a seguir demonstra como invocar o Assistente de impressão online do Windows Vista.

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

Aceder ao ícone do Assistente de Impressão Online

O Assistente de Impressão Online do Windows Vista exporta um ícone que pode ser acessado e exibido por aplicativos que o chamam. A figura a seguir mostra o ícone do Assistente de Impressão Online do Windows Vista.

o ícone do Assistente de Impressão Online do Windows Vista

O exemplo de código a seguir demonstra como recuperar o índice para o ícone do Assistente de impressão online do Windows Vista lendo a propriedade OPWIcon.

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

Propriedades MRU do Assistente de Impressão Online

O Assistente de Impressão Online do Windows Vista define três propriedades relacionadas ao varejista de impressão online usado mais recentemente (MRU).

Nome da propriedade Valor/função da propriedade
MRUIcon O índice do ícone do retalhista de impressão online utilizado mais recentemente pode ser lido a partir desta propriedade.
MRUName O nome do retalhista de impressão online utilizado mais recentemente pode ser lido a partir desta propriedade.
UseMRU Uma VARIANTVT_BOOL valor que indica se o assistente deve ignorar a página de seleção do varejista de impressão on-line e apenas usar o varejista de impressão on-line usado mais recentemente. Defina esta propriedade como VARIANT_TRUE para ignorar a página de seleção do varejista.

 

O exemplo de código a seguir demonstra como definir a propriedade UseMRU para que o Assistente de Impressão Online do Windows Vista ignore a página de seleção do varejista de impressão online e selecione automaticamente o varejista usado mais recentemente.

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

O exemplo de código a seguir demonstra como ler as propriedades MRUName e MRUIcon.

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