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


Мастер онлайн-печати

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

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

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

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

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

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

мастер печати Windows Vista online

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

Мастер печати 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 online

В следующем примере кода показано, как получить индекс для значка мастера печати 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 определяет три свойства, связанные с последними используемыми (MRU) интернет-магазином печати.

Имя свойства Значение или функция свойства
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;
}