Мастер онлайн-печати
Мастер печати Windows Vista Online помогает пользователям заказывать фотографии от участников интернет-печати розничной торговли. Этот мастер разработан таким образом, чтобы его можно было вызывать программным способом любым приложением, которое хочет предложить пользователям возможность заказать печать фотографий. Мастер печати фотографий доступен в Windows Vista. PIX для Windows
- функции, предоставляемые мастером печати в Интернете
- поддерживаемые форматы файлов фотографий
- программным способом запуска мастера печати в Интернете
- доступ к значку мастера печати в Интернете
- мастер печати в Интернете свойств MRU
Функции, предоставляемые мастером печати в Интернете
Мастер печати 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, прочитав свойство 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;
}