أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية إنشاء ملفات تعريف MAPI بدون تثبيت Outlook

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية306962
الموجز
misconception شائعة يجب تثبيت عميل MAPI مثل Microsoft Outlook أو عميل Exchange على Microsoft Exchange Server لإنشاء ملفات تعريف MAPI. تثبيت عميل MAPI لهذا السبب غير ضرورية. للحصول على Outlook، لا ننصح بتثبيت عميل MAPI للحصول على خوادم الإنتاج. طالما تم تثبيت النظام الفرعي لـ MAPI يوجد العديد من طرق أخرى لإنشاء ملفات تعريف MAPI. في Exchange النظام الفرعي لـ MAPI مثبت.
معلومات أخرى

أساليب إنشاء ملفات تعريف MAPI

تقدم Microsoft الأمثلة البرمجية فقط دون أي ضمان التعبير عن أو ضمنية. هذا يتضمن ولكن لم يقتصر على الضمانات الضمنية الخاصة بالتجارة أو الملاءمة لغرض معين. تفترض هذه المقالة تكون مألوفة مع لغة البرمجة التي يتم شرحها مع الأدوات التي يتم استخدامها لإنشاء لتصحيح الإجراءات. يمكن لمهندسي الدعم لدى Microsoft شرح وظيفة إجراء محدد ولكن لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.

قبل محاولة إحدى هذه الطرق يجب التأكد من إجراء بتصحيح الإدخالات في ملف Mapisvc.inf على الملقم. لمزيد من المعلومات حول كيفية تعديل هذا الملف انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
294470كيفية إضافة إدخالات خدمات Exchange إلى Mapisvc.inf

استخدام NewProf.exe

الأداة المساعدة NewProf.exe يتم تضمين مع Outlook. للحصول على مزيد من المعلومات حول كيفية استخدام هذه الأداة المساعدة قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب: لمزيد من المعلومات، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف لـ Microsoft:
145905خيارات سطر الأوامر Newprof.exe
148664وصف ملف واصف التشكيل الجانبي

استخدام نموذج ProfMan2

يستخدم هذا النموذج واجهة IProfAdmin MAPI المذكور في قسم "استخدام واجهة IProfAdmin MAPI". للحصول على هذه العينة ، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
228736Profman2.exe - MAPI الإصدار 2.0 إدارة التشكيل الجانبي

استخدم الدالة MAPILogonEx

عند استدعاء الدالة MAPILogonEx بدون تحديد تشكيل جانبي و بواسطة تعيين إشارة MAPI_LOGON_UI MAPI يعرض معالج إنشاء ملف التعريف إذا لم التشكيلات الجانبية الموجودة على الكمبيوتر. في حالة وجود ملفات تعريف MAPI يعرض مربع الحوار اختيار تشكيل جانبي. انقر فوق جديد لبدء تشغيل معالج إنشاء التشكيل الجانبي.
نموذج التعليمات البرمجية
// CreateProfileWithMAPILogonEx function: This takes advantage of the // profile prompt dialog's "New" button.bool CreateProfileWithMAPILogonEx(){    HRESULT         hRes = S_OK;        // Return code from MAPI calls.    LPMAPISESSION   lpSession = NULL;   // MAPI Session pointer.    // Initialize MAPI.    if (FAILED(hRes = MAPIInitialize(NULL)))    {        cout<<"Error initializing MAPI. hRes = 0x"<<hex<<hRes<<dec<<endl;        return FALSE;    }    // Instruct user to click the "New" button.    cout<<"When the \"Choose Profile\" dialog appears, click the \"New\" button"        <<"to configure a new profile."<<endl;    // Call MAPILogonEx to display the profile chooser dialog box.    if (FAILED(hRes = MAPILogonEx(NULL,                                  NULL,                                  NULL,                                  MAPI_LOGON_UI,                                  &lpSession)))    {        cout<<"Error logging on. hRes = 0x"<<hex<<hRes<<dec<<endl;        return FALSE;    }    // Log off the session.    if (FAILED(hRes = lpSession->Logoff(0,0,0)))    {        cout<<"Error logging off. hRes = 0x"<<hex<<hRes<<dec<<endl;    }    // Release the session.    lpSession->Release();    // Uninitialize MAPI.    MAPIUninitialize();    // true, which indicates success.    return TRUE;}				

استخدم الدالة LAUNCHWIZARDENTRY

استدعاء هذه الدالة مباشرة معالج إنشاء التشكيل الجانبي.
نموذج التعليمات البرمجية
// CreateProfileWithLAUNCHWIZARD function: This uses the LAUNCHWIZARDENTRY API// to display the profile configuration UI.bool CreateProfileWithLAUNCHWIZARD(){    HRESULT     hRes = S_OK;                    // Return code from MAPI calls.    TCHAR       szProfName[80] = {0};           // String to hold profile name.    LPTSTR      szServices[] = {"MSEMS", NULL}; // String to hold message service names.    // Call LaunchWizard to add the MSEMS service.    if (FAILED(hRes = LaunchWizard(NULL,                                   NULL,                                   (LPCTSTR *)szServices,                                   80,                                   szProfName)))    {        cout<<"Error launching wizard. hRes = 0x"<<hex<<hRes<<dec<<endl;        return FALSE;    }    // Return true indicating success.    return TRUE;}				

استخدم واجهة IProfAdmin MAPI

تمكنك هذه الواجهة MAPI على إنشاء تشكيل جانبي دون تدخل المستخدم بشكل مبرمج.
نموذج التعليمات البرمجية
// CreateProfileWithIProfAdmin function: This uses the MAPI IProfAdmin to // programmatically create a profile. No UI is displayed.bool CreateProfileWithIProfAdmin(){    HRESULT         hRes = S_OK;            // Result from MAPI calls.    LPPROFADMIN     lpProfAdmin = NULL;     // Profile Admin object.    LPSERVICEADMIN  lpSvcAdmin = NULL;      // Service Admin object.    LPMAPITABLE     lpMsgSvcTable = NULL;   // Table to hold services.    LPSRowSet       lpSvcRows = NULL;       // Rowset to hold results of table query.    SPropValue      rgval[2];               // Property structure to hold values we want to set.    SRestriction    sres;                   // Restriction structure.    SPropValue      SvcProps;               // Property structure for restriction.    char            szProfile[80] = {0};    // String for profile name.    char            szMailbox[80] = {0};    // String for mailbox name.    char            szServer[80] = {0};     // String for server name.    // This indicates columns we want returned from HrQueryAllRows.    enum {iSvcName, iSvcUID, cptaSvc};    SizedSPropTagArray(cptaSvc,sptCols) = { cptaSvc, PR_SERVICE_NAME, PR_SERVICE_UID };    // Get configuration info from user.    cout<<"Enter name for profile: ";    cin>>szProfile;    cout<<"Enter Exchange mailbox name: ";    cin>>szMailbox;    cout<<"Enter Exchange server name: ";    cin>>szServer;    // Initialize MAPI.    if (FAILED(hRes = MAPIInitialize(NULL)))    {        cout<<"Error initializing MAPI.";        goto error;    }    // Get an IProfAdmin interface.    if (FAILED(hRes = MAPIAdminProfiles(0,              // Flags.                                        &lpProfAdmin))) // Pointer to new IProfAdmin.    {        cout<<"Error getting IProfAdmin interface.";        goto error;    }    // Create a new profile.    if (FAILED(hRes = lpProfAdmin->CreateProfile(szProfile,     // Name of new profile.                                                 NULL,          // Password for profile.                                                 NULL,          // Handle to parent window.                                                 NULL)))        // Flags.    {        cout<<"Error creating profile.";        goto error;    }    // Get an IMsgServiceAdmin interface off of the IProfAdmin interface.    if (FAILED(hRes = lpProfAdmin->AdminServices(szProfile,     // Profile that we want to modify.                                                 NULL,          // Password for that profile.                                                 NULL,          // Handle to parent window.                                                 0,             // Flags.                                                 &lpSvcAdmin))) // Pointer to new IMsgServiceAdmin.    {        cout<<"Error getting IMsgServiceAdmin interface.";        goto error;    }    // Create the new message service for Exchange.    if (FAILED(hRes = lpSvcAdmin->CreateMsgService("MSEMS",     // Name of service from MAPISVC.INF.                                                   NULL,        // Display name of service.                                                   NULL,        // Handle to parent window.                                                   NULL)))      // Flags.    {        cout<<"Error creating Exchange message service.";        goto error;    }            // You now have to obtain the entry id for the new service.    // You can do this by getting the message service table    // and getting the entry that corresponds to the new service.    if (FAILED(hRes = lpSvcAdmin->GetMsgServiceTable(0,                 // Flags.                                                     &lpMsgSvcTable)))  // Pointer to table.    {        cout<<"Error getting Message Service Table.";        goto error;    }    // Set up restriction to query table.    sres.rt = RES_CONTENT;    sres.res.resContent.ulFuzzyLevel = FL_FULLSTRING;    sres.res.resContent.ulPropTag = PR_SERVICE_NAME;    sres.res.resContent.lpProp = &SvcProps;    SvcProps.ulPropTag = PR_SERVICE_NAME;    SvcProps.Value.lpszA = "MSEMS";    // Query the table to obtain the entry for the newly created message service.    if (FAILED(hRes = HrQueryAllRows(lpMsgSvcTable,                                     (LPSPropTagArray)&sptCols,                                     &sres,                                     NULL,                                     0,                                     &lpSvcRows)))    {        cout<<"Error querying table for new message service.";        goto error;    }    // Set up a SPropValue array for the properties that you have to configure.    // First, the server name.    ZeroMemory(&rgval[1], sizeof(SPropValue) );    rgval[1].ulPropTag = PR_PROFILE_UNRESOLVED_SERVER;    rgval[1].Value.lpszA = szServer;    // Next, the mailbox name.    ZeroMemory(&rgval[0], sizeof(SPropValue) );    rgval[0].ulPropTag = PR_PROFILE_UNRESOLVED_NAME;     rgval[0].Value.lpszA = szMailbox;    // Configure the message service by using the previous properties.        if (FAILED(hRes = lpSvcAdmin->ConfigureMsgService(        (LPMAPIUID)lpSvcRows->aRow->lpProps[iSvcUID].Value.bin.lpb, // Entry ID of service to configure.        NULL,                                                       // Handle to parent window.        0,                                                          // Flags.        2,                                                          // Number of properties we are setting.        rgval)))                                                    // Pointer to SPropValue array.    {        cout<<"Error configuring message service.";        goto error;    }    goto cleanup;error:    cout<<" hRes = 0x"<<hex<<hRes<<dec<<endl;    return FALSE;cleanup:    // Clean up.    if (lpSvcRows) FreeProws(lpSvcRows);    if (lpMsgSvcTable) lpMsgSvcTable->Release();    if (lpSvcAdmin) lpSvcAdmin->Release();    if (lpProfAdmin) lpProfAdmin->Release();    MAPIUninitialize();    return TRUE;}				

نموذج

يتوفر الملف التالي للتنزيل من "مركز التنزيل لـ Microsoft":
تاريخ الإصدار:, 22 أكتوبر 2001

للحصول على مزيد من المعلومات حول كيفية تنزيل ملفات دعم Microsoft، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
119591كيفية الحصول على ملفات دعم Microsoft من الخدمات عبر إنترنت
قامت Microsoft بفحص هذا الملف بحثًا عن الفيروسات. استخدام Microsoft أحدث من برنامج كشف الفيروس المتوفر على التاريخ الذي تم نشر الملف. يتم تخزين الملف على ملقمات محسنة الأمان التي تساعد على منع إجراء أية تغييرات غير مصرح به إلى الملف. Profiler.exe هي نموذج Microsoft Visual C++ بسيط يوضح أساليب 3 إلى 5 أعلاه. يحتوي ملف Profiler.exe على الملفات التالية:

اسم الملفحجم
Profiler.dsw1 كيلو بايت
Profiler.dspكيلوبايت 5
Profiler.cpp12 كيلو بايت

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 306962 - آخر مراجعة: 10/25/2007 17:11:34 - المراجعة: 8.6

Microsoft Exchange Server 2003 Enterprise Edition, Microsoft Exchange Server 2003 Standard Edition, Microsoft Exchange 2000 Server Standard Edition, Microsoft Exchange Server 5.5 Standard Edition, واجهة برمجة تطبيقات الرسائل من Microsoft

  • kbmt kbdownload kbhowto kbmsg KB306962 KbMtar
تعليقات
html>> Asimov.clickstreamTracker.init(); p;t=">