วิธีการใช้ชุดรูปแบบของ Windows XP โปรแกรม Office COM เพิ่มเติม

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 830033 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

เมื่อคุณสร้างการ COM add-in ที่ สำหรับ Microsoft Office โปรแกรม (ตัวอย่าง Microsoft Visio), ลักษณะที่ปรากฏของที่ เพิ่มในจะเป็น โดยค่าเริ่มต้นเพื่อลักษณะที่ปรากฏของ Office มาตรฐาน อย่างไรก็ตาม กับ Microsoft Windows XP คุณสามารถเลือกจากหมายเลขของลักษณะการแสดงผล (หรือชุดรูปแบบ) เพื่อกำหนดลักษณะที่ปรากฏของโปรแกรม Microsoft Windows

นอกจากชุดรูปแบบ Windows ทรานเปิดใช้งานสำหรับการ COM เพิ่มไว้ ลักษณะที่ปรากฏของเพิ่มเข้าไม่เปลี่ยนแปลงกับโครงร่างนี้สี เลขนำหน้าเพิ่มเข้าไปปรากฏ dated หรือการออกแบบของ-synch กับโปรแกรมที่มีอยู่ ด้วย Microsoft c ++ที่แสดงผลหรือภาษา Microsoft Visual Studio .NET คุณสามารถเปิดใช้งาน COM ของคุณเพิ่มเข้าไป opt เข้ากับชุดรูปแบบของ Windows ได้

เมื่อคุณเปิดใช้งานการเพิ่มไว้สำหรับชุดรูปแบบ Windows ชุดรูปแบบที่มีผลต่อลักษณะของการเพิ่มเข้าเท่านั้น ฟังก์ชันการทำงานของการเพิ่มไว้จะไม่ได้รับผลกระทบ

ปฏิเสธ

Microsoft แสดงตัวอย่างการเขียนโปรแกรมเพื่อประกอบการอธิบายเท่านั้น และไม่มีการรับประกัน ไม่ว่าโดยชัดแจ้งหรือโดยนัย ทั้งนี้รวมถึง แต่ไม่จำกัดเพียงการรับประกันโดยนัยในเรื่องการซื้อขายหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ บทความนี้อนุมานว่าคุณมีความคุ้นเคยกับภาษาการเขียนโปรแกรมที่แสดงอยู่ รวมทั้งเครื่องมือต่างๆ ที่ใช้ในการสร้างและแก้จุดบกพร่องกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายเกี่ยวกับการทำงานของกระบวนการเฉพาะได้ อย่างไรก็ตาม จะไม่มีการปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีฟังกชันการทำงานที่เพิ่มขึ้น หรือสร้างกระบวนการใดๆ เพื่อตอบสนองความต้องการอย่างใดอย่างหนึ่งของคุณโดยเฉพาะ

Microsoft Visual Basic 6.0

visual Basic 6.0 ไม่สนับสนุนชุดรูปแบบ ห้าม themed คงคลังที่เพิ่ม โดยใช้ Visual Basic 6.0

Microsoft Visual c ++ 6.0

เมื่อต้องการใช้ c ++ 6.0 ที่แสดงผลเพื่อเปิดใช้งานแบบ COM เพิ่มเข้าไป opt เข้ากับ Windows XP ชุดรูปแบบชุด การทำตามขั้นตอนเหล่านี้:
  1. สร้างแฟ้มแสดงรายการที่ประกอบด้วยรายละเอียดต่อไปนี้ ข้อมูลสำหรับการเข้าของคุณระบุ add-in ที่กำหนดด้วยตนเอง:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
     <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
      <noInherit/>
      <assemblyIdentity 
       processorArchitecture="*" 
       type="win32" 
       name="MyOfficeNetAddin"
       version="1.0.0.0"/>
       <description>My Office Addin built with .Net</description> 
       <dependency optional="yes">                              
        <dependentAssembly>                   
         <assemblyIdentity                 
          type="win32"                
          name="Microsoft.Windows.Common-Controls" 
          version="6.0.1.0"           
          publicKeyToken="6595b64144ccf1df" 
          language="*"                
          processorArchitecture="*"/>
        </dependentAssembly>                  
       </dependency>                             
     </assembly>
    
  2. เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้::
    • รวมคำสั่ง preprocessor การต่อไปนี้:
      #define ISOLATION_AWARE_ENABLED
      
    • การคอมไพล์ด้วย:
      /D ISOLATION_AWARE_ENABLED
      
  3. เพิ่มแฟ้มแสดงรายการแฟ้มของทรัพยากร ในตัวอย่างต่อไปนี้:
    #include "windows.h"
    ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST "mydllname.dl.manifest"
    

Microsoft Visual Studio .NET และภาษาที่จัดการ

เมื่อต้องการใช้ Visual Studio .NET และ.NET Framework เพื่อเปิดใช้งาน Windows XP ที่ชุดรูปแบบสำหรับการ COM add-in ที่ทำตามขั้นตอนเหล่านี้

หมายเหตุ:ในตัวอย่างนี้ c# ถูกใช้ในการเปิดการใช้งานของบริบทการเปิดใช้งาน themed บนแบบฟอร์ม Windows นอกจากนี้ สำหรับชุดรูปแบบของ Windows ให้เปิดใช้งานสำหรับปุ่ม กล่องกาเครื่องหมาย ปุ่มตัวเลือก กลุ่มกล่อง และFlatStyleคุณสมบัติของวัตถุเหล่านั้นต้องถูกตั้งค่าเป็นระบบ:.
  1. รวมข้อมูลต่อไปนี้ในแฟ้ม.cs ข้อมูลสำหรับการเข้าของคุณระบุ add-in ที่กำหนดด้วยตนเอง:
    using System.Runtime.InteropServices;
    using System;
    using System.Security;
    using System.Security.Permissions;
    using System.Collections;
    using System.IO;
    using System.Text;
    using System.Windows.Forms;
    
    namespace MyOfficeNetAddin
    {
        /// <devdoc>
        ///     This class is intended to use with the C# 'using' statement in
        ///     to activate an activation context for turning on visual theming at
        ///     the beginning of a scope, and have it automatically deactivated
        ///     when the scope is exited.
        /// </devdoc>
    
    [ SuppressUnmanagedCodeSecurity ]
    internal class EnableThemingInScope : IDisposable
    {
       // Private data
    	  private uint  cookie;
       private static ACTCTX enableThemingActivationContext;
       private static IntPtr hActCtx;
       private static bool contextCreationSucceeded = false;
    
       public EnableThemingInScope(bool enable)
       {
       cookie = 0;
       if (enable && OSFeature.Feature.IsPresent(OSFeature.Themes))
       {
        if (EnsureActivateContextCreated())
        {
         if (!ActivateActCtx(hActCtx, out cookie))
         {
             // Be sure cookie always zero if activation failed
             cookie = 0;
         }
        }
       }
      }
    
      ~EnableThemingInScope()
      {
       Dispose(false);
      }
    
      void IDisposable.Dispose()
      {
       Dispose(true);
      }
    
      private void Dispose(bool disposing)
      {
       if (cookie != 0)
       {
        if (DeactivateActCtx(0, cookie))
        {
           // deactivation succeeded...
           cookie = 0;
        }
       }
      }
    
      private bool EnsureActivateContextCreated()
      {
       lock (typeof(EnableThemingInScope))
       {
        if (!contextCreationSucceeded)
        {
         // Pull manifest from the .NET Framework install
         // directory
    
         string assemblyLoc = null;
                            
         FileIOPermission fiop = new FileIOPermission(PermissionState.None);
         fiop.AllFiles = FileIOPermissionAccess.PathDiscovery;
         fiop.Assert();
         try
         {
          assemblyLoc = typeof(Object).Assembly.Location;
         }
         finally
         { 
          CodeAccessPermission.RevertAssert();
         }
    
         string manifestLoc = null;
         string installDir = null;
         if (assemblyLoc != null)
         {
          installDir = Path.GetDirectoryName(assemblyLoc);
          const string manifestName = "XPThemes.manifest";
          manifestLoc = Path.Combine(installDir, manifestName);
         }
    
         if (manifestLoc != null && installDir != null)
         {
          enableThemingActivationContext = new ACTCTX();
          enableThemingActivationContext.cbSize = Marshal.SizeOf(typeof(ACTCTX));
    	     enableThemingActivationContext.lpSource = manifestLoc;
    
          // Set the lpAssemblyDirectory to the install
          // directory to prevent Win32 Side by Side from
          // looking for comctl32 in the application
          // directory, which could cause a bogus dll to be
          // placed there and open a security hole.
    	     enableThemingActivationContext.lpAssemblyDirectory = installDir;
    	     enableThemingActivationContext.dwFlags = ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID; 
     
    	     // Note this will fail gracefully if file specified
          // by manifestLoc doesn't exist.
          hActCtx = CreateActCtx(ref enableThemingActivationContext);
          contextCreationSucceeded = (hActCtx != new IntPtr(-1));
         }
        }
    
        // If we return false, we'll try again on the next call into
        // EnsureActivateContextCreated(), which is fine.
        return contextCreationSucceeded;
       }
      }
    
      // All the pinvoke goo...
      [DllImport("Kernel32.dll")]
      private extern static IntPtr CreateActCtx(ref ACTCTX actctx);
      [DllImport("Kernel32.dll")]
      private extern static bool ActivateActCtx(IntPtr hActCtx, out uint lpCookie);
      [DllImport("Kernel32.dll")]
      private extern static bool DeactivateActCtx(uint dwFlags, uint lpCookie);
    
      private const int ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x004;
                
      private struct ACTCTX 
      {
       public int       cbSize;
       public uint      dwFlags;
       public string    lpSource;
       public ushort    wProcessorArchitecture;
       public ushort    wLangId;
       public string    lpAssemblyDirectory;
       public string    lpResourceName;
       public string    lpApplicationName;
      }
     }
    }
    
  2. สร้างฟอร์มของคุณ ด้วย wrapper ที่ต่อไปนี้ ขั้นตอนนี้ pushes บริบทการเปิดใช้งาน themed ก่อนที่จะสร้างตัวควบคุม:
    using( new EnableThemingInScope( true ) )
    {
     Form1 form1 = new Form1();
     form1.CreateControl();
    }
    

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ Windows XP ที่มองเห็นลักษณะ (ชุดรูปแบบ) แวะไป Microsoft MSDN เว็บไซต์ต่อไปนี้:
http://msdn2.microsoft.com/en-us/library/ms997646.aspx

คุณสมบัติ

หมายเลขบทความ (Article ID): 830033 - รีวิวครั้งสุดท้าย: 18 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Office Basic 2007
  • Microsoft Office Basic Edition 2003
  • Microsoft Office Professional 2007
  • Microsoft Office Professional Edition 2003
  • Microsoft Office Small Business 2007
  • Microsoft Office Small Business Edition 2003
  • Microsoft Office Standard 2007
  • Microsoft Office Home and Student 2007
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Office Excel 2007
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Project Professional 2007
  • Microsoft Office Project Professional 2003
  • Microsoft Office Project Standard 2007
  • Microsoft Office Project Standard 2003
  • Microsoft Office Publisher 2007
  • Microsoft Office Publisher 2003
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visio Professional 2003
  • Microsoft Office Visio Standard 2007
  • Microsoft Office Word 2007
Keywords: 
kbprogramming kbcode kbhowtomaster kbmt KB830033 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:830033

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com