CreateEmailDC VC++ Example
void CEPrintDemoView::OnCreateEmailDC()
{
IEpnMultiSaveOptions * pMultiSaveOptions;
IEpnExtraDcOptions * pExtraDcOptions;
IEPrint * pLeadPrnt;
IEpnMailMessageInfo * pMailMessageInfo;
HRESULT hr;
long hDC = NULL;
hr = ::CoCreateInstance(CLSID_EPrint, NULL, CLSCTX_ALL, IID_IEPrint, (void**) &pLeadPrnt);
if(FAILED(hr))
return;
hr = ::CoCreateInstance(CLSID_EpnMultiSaveOptions, NULL, CLSCTX_ALL, IID_IEpnMultiSaveOptions, (void**) &pMultiSaveOptions);
if(FAILED(hr))
return;
hr = ::CoCreateInstance(CLSID_EpnExtraDcOptions, NULL, CLSCTX_ALL, IID_IEpnExtraDcOptions, (void**) &pExtraDcOptions);
if(FAILED(hr))
return;
hr = ::CoCreateInstance(CLSID_EpnMailMessageInfo, NULL, CLSCTX_ALL, IID_IEpnMailMessageInfo, (void**) &pMailMessageInfo);
if(FAILED(hr))
return;
if (pLeadPrnt-> IsSupportLocked (SUPPORT_OEM))
pLeadPrnt->UnlockSupport (SUPPORT_OEM, OEM_KEY);
pLeadPrnt->GetPrinterSaveOptions (TEST_PRINTER_NAME, &pMultiSaveOptions);
pExtraDcOptions->Password = "Test Password";
pMailMessageInfo->To = "someone@domain.com";
pMailMessageInfo-> Subject = "Subject";
pMailMessageInfo->Body = "Testing";
pMailMessageInfo->EmailSaveOptionsIndex = 0;
hDC = pLeadPrnt->CreateEmailDC (TEST_PRINTER_NAME, NULL, pMailMessageInfo, pMultiSaveOptions->GetPrinterSaveOptions(0), pExtraDcOptions);
if(hDC)
{
short nRet;
_bstr_t bstr(" file test ");
nRet = pLeadPrnt->StartDoc (hDC, bstr);
if(nRet == 0)
{
nRet = pLeadPrnt->StartPage (hDC);
if(nRet == 0)
{
PlayGDICommands((HDC)hDC);
nRet = pLeadPrnt->EndPage (hDC);
}
nRet = pLeadPrnt->EndDoc (hDC);
}
pLeadPrnt->DeleteDC ((long)hDC);
}
if(pExtraDcOptions)
{
pExtraDcOptions->Release();
pExtraDcOptions = NULL;
}
if(pMultiSaveOptions)
{
pMultiSaveOptions->Release();
pMultiSaveOptions = NULL;
}
if(pMailMessageInfo)
{
pMailMessageInfo->Release();
pMailMessageInfo = NULL;
}
if(pLeadPrnt)
{
pLeadPrnt->Release();
pLeadPrnt = NULL;
}
}