PDA

View Full Version : درخواست توضیح برای این کد



amir3321
دوشنبه 06 مرداد 1393, 10:45 صبح
می خواستم اگه ممکنه یک توضیح راجع به این کد و نحوه استفاده از com در C# رو توضیح بدهید مثل نحوه استفاده از این CLSID و نحوه استفاده از انها در سی شارپ

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);}

keyone72
دوشنبه 06 مرداد 1393, 14:20 عصر
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);}

amir3321
چهارشنبه 08 مرداد 1393, 19:33 عصر
از اساتید کسی نبود یک توضیحی بدهد

khokhan
چهارشنبه 08 مرداد 1393, 21:09 عصر
از اساتید کسی نبود یک توضیحی بدهد
در یک جمله کوتاه اگه بخواهیم سخن رو کوتاه کنیم اینطوریه که :
عرض بشود خدمتتون که در ویندوز و در قسمت امنیتی یه امکاناتی تعبیه گردیده تا کاربر بتونه چند تا عکس رو از یه دایرکتوری انتخاب بکنه و قبل از اینکه بفرسته به چاپ ، ویزاردی براش نمایش داده بشه
و کار بر بتونه با تیک زدن موردی یا همه انتخابهایش اونها رو مدیریت کنه ......... ارجاع برای دانستن بیشتر لینک (http://www.itexperience.net/2010/10/29/event-10016-the-application-specific-permission-settings-do-not-grant-local-launch-permission-for-the-com-server-application-with-clsid-c97fcc79-e628-407d-ae68-a06ad6d8b4d1/)

البته کدی رو که حضرتعالی گذاشتین ، فراخوانی این امکانات از طریق ارسال پیام به ریجستری ویندوز می باشد البته به زبان دلفی

این هم برای درک اهمیت موضوع :لبخند: ..................................... لینک http://msdn.microsoft.com/en-us/library/cc351041(v=vs.85).aspx

amir3321
پنج شنبه 09 مرداد 1393, 10:25 صبح
با سلام ممنون از توضیحتون من قبلا از این کد برای پرینت عکس استفاده کردم ولی مشکل در پرینت یک لیست از عکسها بود لینک تاپیک (http://barnamenevis.org/showthread.php?461403-%D9%BE%D8%B1%DB%8C%D9%86%D8%AA-%D8%B9%DA%A9%D8%B3%D9%87%D8%A7%DB%8C-%D8%AF%D8%A7%D8%AE%D9%84-%DB%8C%DA%A9-%D9%81%D9%84%D8%AF%D8%B1-%D8%A8%D8%A7-%D9%BE%D8%B1%DB%8C%D9%86%D8%AA-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2)

ProcessStartInfo p = new ProcessStartInfo (dirpath + "\\" + filenamesimple);

p.Verb = "Print";

p.UseShellExecute = true;
p.WindowStyle = ProcessWindowStyle.Hidden;
p.CreateNoWindow = true ;
System.Diagnostics.Process.Start(p);





و کدی که اینجا گذاشتم من هم از همین لینک msdn پیداکردم ولی می خواستم نحوه استفاده اون رو تو c# بدونم چطوری هست مثل clsid و میخوام این کدو تبدبل به سی شارپ کنم
یعنی نحوه تعریف clsid در سی شارپ و ابجکت IDataObject* و نحوه استفاده از این پوینتر و تا انتها
ممنون میشم راهنمایی بفرمائید