windows - 如何在 Windows XP 上显示 Windows 照片打印向导?

标签 windows delphi

您好,我用的是Delphi 2010 + Windows XP,您可以在Delphi调用Windows XP中的照片打印向导。

How do I show the Windows photo-printing wizard?

以上提示仅适用于 Windows 7

谢谢。

最佳答案

MSDN包括示例代码:

static const CLSID CLSID_PrintPhotosDropTarget = 
  {0x60fd46de, 0xf830, 0x4894, {0xa6, 0x28, 0x6f, 0xa8, 0x1b, 0xc0, 0x19, 0x0d}};

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

Delphi 代码应该是这样的:

uses
  ActiveX, ComObj;

const
  CLSID_PrintPhotosDropTarget: TGUID = '{60FD46DE-F830-4894-A628-6FA81BC0190D}';

procedure InvokePhotoPrintingWizard;
var
  Effect: LongInt;
  Position: TPoint;
  DataObject: IDataObject;
  DropTarget: IDropTarget;
begin
  // create the Photo Printing Wizard drop target
  OleCheck(CoCreateInstance(CLSID_PrintPhotosDropTarget, nil,
    CLSCTX_INPROC_SERVER, IDropTarget, DropTarget));
  // drop the data object onto the drop target
  Position.X := 0;
  Position.Y := 0;
  Effect := DROPEFFECT_LINK or DROPEFFECT_MOVE or DROPEFFECT_COPY;
  OleCheck(DropTarget.DragEnter(DataObject, MK_LBUTTON, Position, Effect));
  OleCheck(DropTarget.Drop(DataObject, MK_LBUTTON, Position, Effect));
end;

关于windows - 如何在 Windows XP 上显示 Windows 照片打印向导?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15648419/

相关文章:

Delphi如何使用其他窗体中的类型?

DELPHI IDE - 阻止 F12 调出 ‘CPU’ 窗口

php - Windows Composer 安装问题

windows - 如何让OpenCV在Windows下工作?

windows - 此记事本 (.bat) 代码有什么作用以及如何工作?

delphi - TRestClient Delphi XE5中对UTF-8编码字符串的支持

delphi - 面向 Delphi 初学者的网站

Delphi IdFTP - 获取以指定 ANSI 代码页编码的文件列表

windows - Linux 上的 Oracle 数据库

C# - 检测用户是否使用Windows 7或Windows 8