Mfc 从注册表读取DEVMODE结构

Mfc 从注册表读取DEVMODE结构,mfc,windows-ce,arm9,Mfc,Windows Ce,Arm9,我正在从事一个项目,我需要从设备上为打印操作编程。 它赢得了CE 6.0。我正在使用VisualStudio2005(MFC)。 打印机可以是任何PCL兼容的打印机 目前,要获取打印机DC,我使用CreateDC() 使用此调用,我可以成功打印。 这里,我将特定于DEVMODE的输入参数传递为NULL。但是为了更好地控制这些打印操作,我需要将DEVMODE信息传递给CreateDC() 为此,我计划调用上面指定的CreateDC(),以在注册表中生成特定于DEVMODE的信息。然后,我可以将这个

我正在从事一个项目,我需要从设备上为打印操作编程。 它赢得了CE 6.0。我正在使用VisualStudio2005(MFC)。 打印机可以是任何PCL兼容的打印机

目前,要获取打印机DC,我使用CreateDC()

使用此调用,我可以成功打印。 这里,我将特定于DEVMODE的输入参数传递为NULL。但是为了更好地控制这些打印操作,我需要将DEVMODE信息传递给CreateDC()

为此,我计划调用上面指定的CreateDC(),以在注册表中生成特定于DEVMODE的信息。然后,我可以将这个DEVMODE数据从注册表读取到本地变量中,只修改这个变量的必要字段,然后将这个变量传递给CreateDC(),以获取打印机DC,以便执行实际的打印操作

我避免直接初始化DEVMODE结构,因为我没有关于DEVMODE的某些字段的足够信息,例如dmDriverExtra

我需要知道如何从注册表中安全地读取类似DEVMODE的结构?任何相关的例子都会非常有用

亲切问候,,
Aftab

这是一个古老的方法,但为了防止有人发现它仍然有用


DEVMODE包含私有区域和公共区域,因此将其大小分配为sizeof(DEVMODE)将排除某些设置。初始化DEVMODE的正确方法是使用DocumentProperties()函数查询其默认状态。当最后一个参数设置为零时,它返回所需的字节数。

任何直接的DEVMODE初始化相关信息也会有很大帮助。我对dmDriverExtra字段(以及DEVMODE后面的特定于驱动程序的数据,如果需要的话)特别感兴趣。
hPrinterDC = CreateDC(L"PCL.DLL", L"Any Name", L"LPT1", NULL);