السلام عليكم ورحمة الله وبركاته
حيث أني لا أعرف لغة البرمجة C ووجدت كوداً محتاجاً إليه فأرجو منكم المساعدة في تحويل هذا الكود من C إلى Delphi
مصدر الكود من موقع مايكروسوف
http://msdn.microsoft.com/library/default....webocstream.asp
يستحسن الذهاب إلى العنوان لفهم الكود جيداً .
من المعلوم أنك لا تستطيع ( أقصد لا أستطيع) عرض ملفات html في المكون WebBrowser إلا باستخدام الإجرائية Navigate أو Navigate2 وهي تطلب منك مسار الملف على القرص أو عنوانه على الويب وبذلك يصعب عليك تكوين ملفاتك وعرضها في WebBrowser
ثم بعد البحث وجد هذا الكود ووظيفته إتاحة الفرصة للمبرمج كي يكوِّن ملفاته الديناميكية في الذاكرة دون الحاجة لحفظها على القرص
HRESULT LoadWebBrowserFromStream(IWebBrowser* pWebBrowser, IStream* pStream)
{
HRESULT hr;
IDispatch* pHtmlDoc = NULL;
IPersistStreamInit* pPersistStreamInit = NULL;
// Retrieve the document object.
hr = pWebBrowser->get_Document( &pHtmlDoc );
if ( SUCCEEDED(hr) )
{
// Query for IPersistStreamInit.
hr = pHtmlDoc->QueryInterface( IID_IPersistStreamInit, (void**)&pPersistStreamInit );
if ( SUCCEEDED(hr) )
{
// Initialize the document.
hr = pPersistStreamInit->InitNew();
if ( SUCCEEDED(hr) )
{
// Load the contents of the stream.
hr = pPersistStreamInit->Load( pStream );
}
pPersistStreamInit->Release();
}
}
}السبب في صعوبة التحويل أن بعض الأنواع لم أجدها مصرحاً عنها في وحدات Delphi أو يكون تصريح منهجها تصريحاً محمياً .