Поделиться через


Мастер печати через Интернет

Мастер печати Windows Vista Online помогает пользователям заказывать отпечатки фотографий у участвующих интернет-магазинов печати. Этот мастер разработан таким образом, что он может вызываться программным способом любым приложением, которое хочет предложить пользователям возможность заказывать фотографии. Мастер печати фотографий доступен в Windows Vista. PIX для Windows

Функции, предоставляемые мастером печати в Интернете

Мастер печати Windows Vista Online позволяет пользователям заказывать печати у нескольких участвующих интернет-магазинов печати. При вызове мастер:

  1. Принимает файл или список файлов, для которых требуется упорядочить печать.
  2. Автоматически получает текущий список участвующих интернет-магазинов печати и позволяет пользователю выбрать розничного продавца, у которого будут приобретены фотопечати.
  3. Направляет пользователя по процессу или заказу печати.

Любое приложение может воспользоваться функциями, предлагаемыми мастером печати Windows Vista Online. Приложению требуется только передать файл или файлы, для которых будет упорядочена печать, и мастер направляет пользователя в процесс заказа.

На следующем рисунке показан мастер печати Windows Vista Online с примером списка участвующих интернет-магазинов печати.

мастер печати Windows Vista в Интернете

Поддерживаемые форматы файлов фотографий

Мастер печати Windows Vista Online поддерживает любой формат файлов изображений, для которого установлен кодек компонента образов Windows (WIC). WIC предоставляет несколько стандартных кодеков, в том числе:

  • Точечный рисунок (BMP)
  • GIF
  • Формат значка (ICO)
  • JPEG
  • PNG
  • TIFF
  • Формат фотографий Windows Media

Дополнительные сведения о кодеках WIC и WIC см. в разделе Компонент обработки образов Windows.

Форматы файлов, поддерживаемые розничными интернет-магазинами печати, различаются в разных розничных магазинах; возможно, что определенный розничный торговец может поддерживать не все форматы файлов, поддерживаемые мастером печати Windows Vista Online. Если пользователь пытается заказать печать в формате, который не поддерживается выбранным розничным продавцом, мастер печати Windows Vista Online уведомляет пользователя о том, что выбранный розничный торговец не поддерживает формат отправленного файла.

Программный запуск мастера печати в Интернете

Чтобы вызвать мастер печати Windows Vista Online, вызовите интерфейс IDropTarget со следующим идентификатором класса (CLSID):

CLSID_PublishDropTarget

Этот ИДЕНТИФИКАТОР CLSID определен в Shobjidl.h и Shobjidl.idl. Файлы, обрабатываемые мастером печати Windows Vista Online, указываются в объекте IDataObject .

В следующем примере кода показано, как вызвать мастер печати Windows Vista Online.

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

Доступ к значку мастера печати в Интернете

Мастер печати Windows Vista Online экспортирует значок, к которому могут обращаться и отображаться приложения, которые его называют. На следующем рисунке показан значок мастера печати Windows Vista Online.

значок мастера печати Windows Vista в Интернете

В следующем примере кода показано, как получить индекс для значка мастера печати Windows Vista Online, прочитав свойство 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;
}

Свойства MRU мастера печати в Интернете

Мастер печати Windows Vista Online определяет три свойства, связанные с последним использованным интернет-магазином печати.

Имя свойства Значение/функция свойства
MRUIcon Индекс значка для последнего использованного розничного интернет-магазина печати можно прочитать из этого свойства.
MRUName Название последнего использованного розничного интернет-магазина печати можно прочитать в этом свойстве.
UseMRU Значение VARIANTVT_BOOL, указывающее, следует ли мастеру пропустить страницу выбора розничного интернет-магазина печати и использовать только последний использованный интернет-магазин печати. Присвойте этому свойству значение VARIANT_TRUE , чтобы пропустить страницу выбора розничного продавца.

 

В следующем примере кода показано, как задать свойство UseMRU, чтобы мастер печати Windows Vista Online обходя страницу выбора розничного интернет-магазина печати и автоматически выбирал последнего использованного розничного продавца.

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

В следующем примере кода показано, как считывать свойства MRUName и 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;
}