กลับไปหน้าบทความ

อ่าน 4 นาที

OLE Automation

ในการเขียนโปรแกรมแอปพลิเคชัน Microsoft Windows นั้น OLE Automation (ต่อมาเปลี่ยนชื่อเป็น Automation เฉยๆ [ 1 ] [ 2 ] ) เป็น กลไก การสื่อสารระหว่างกระบวนการ ที่สร้างโดย Microsoft...

OLE Automation

ในการเขียนโปรแกรมแอปพลิเคชันMicrosoft Windows นั้น OLE Automation (ต่อมาเปลี่ยนชื่อเป็น Automationเฉยๆ[ 1 ] [ 2 ] ) เป็น กลไก การสื่อสารระหว่างกระบวนการที่สร้างโดยMicrosoftโดยอิงจากส่วนย่อยของComponent Object Model (COM) ซึ่งเดิมทีมีไว้สำหรับใช้โดยภาษาสคริปต์ – เดิมคือ Visual Basic – แต่ปัจจุบันถูกใช้โดยหลายภาษาบน Windows วัตถุอัตโนมัติทั้งหมดจะต้องใช้งาน อินเทอร์เฟซ IDispatch OLE Automation มีโครงสร้างพื้นฐานที่แอปพลิเคชันที่เรียกว่าตัวควบคุมอัตโนมัติสามารถเข้าถึงและจัดการ (เช่น ตั้งค่าคุณสมบัติหรือเรียกใช้เมธอดบน) วัตถุอัตโนมัติ ที่ใช้ร่วมกัน ซึ่งส่งออกโดยแอปพลิเคชันอื่นๆ โดย OLE Automation จะมาแทนที่Dynamic Data Exchange (DDE) ซึ่งเป็นกลไกเก่ากว่าสำหรับแอปพลิเคชันในการควบคุมซึ่งกันและกัน[ 3 ] เช่นเดียวกับ DDE ใน OLE Automation ตัวควบคุมอัตโนมัติคือ "ไคลเอ็นต์" และแอปพลิเคชันที่ส่งออกวัตถุอัตโนมัติคือ "เซิร์ฟเวอร์"

แม้ชื่อจะบอกว่าเป็น Automation Object แต่ Automation Object ไม่ได้ใช้ Microsoft OLE เสมอ ไป ถึงแม้ว่า Automation Object บางตัวจะสามารถใช้งานในสภาพแวดล้อม OLE ได้ก็ตาม ความสับสนนี้มีต้นตอมาจากคำจำกัดความของ OLE ที่ Microsoft เคยกำหนดไว้ก่อนหน้านี้ ซึ่งโดยพื้นฐานแล้วมีความหมายเหมือนกับ COM

ข้อดีและข้อจำกัด

เพื่อให้มั่นใจถึงความสามารถในการทำงานร่วมกัน อินเทอร์เฟซอัตโนมัติจึงถูกจำกัดให้ใช้เพียงชุดย่อยของประเภท COM ทั้งหมด[ 4 ] [ 5 ]โดยเฉพาะอย่างยิ่ง อินเทอร์เฟซอัตโนมัติจะต้องใช้ SAFEARRAY แทนอาร์เรย์ COM ดิบ

อย่างไรก็ตาม เซิร์ฟเวอร์ COM ที่เข้ากันได้กับระบบอัตโนมัติสามารถอาศัยการใช้งานการจัดเรียง OLE ในตัวได้[ 6 ]ซึ่งจะช่วยหลีกเลี่ยงความจำเป็นสำหรับโปรเจกต์พร็อกซี/สับเพิ่มเติมสำหรับการจัดเรียงนอกกระบวนการ

การใช้งาน

ระบบอัตโนมัติได้รับการออกแบบโดยคำนึงถึงความสะดวกในการเขียนสคริปต์ ดังนั้นตัวควบคุมมักจะจัดเตรียมภาษาต่างๆ เช่นVisual Basic for Applicationsให้กับผู้ใช้ปลายทาง ทำให้พวกเขาสามารถควบคุมวัตถุอัตโนมัติผ่านสคริปต์ได้ วัตถุอัตโนมัติมักจะเขียนด้วยภาษาทั่วไป เช่นC++ [ 7 ] ซึ่งแอตทริบิวต์ของ C++ สามารถใช้เพื่อลดความซับซ้อนในการพัฒนา[ 8 ]ภาษาต่างๆ เช่นVisual BasicและBorland Delphiยังมีไวยากรณ์ที่สะดวกสำหรับระบบอัตโนมัติซึ่งซ่อนความซับซ้อนของการใช้งานพื้นฐาน

ไลบรารีประเภท

เพื่อให้แอปพลิเคชันทำงานโดยอัตโนมัติ นักพัฒนาตัวควบคุมการทำงานอัตโนมัติจะต้องทราบโมเดลวัตถุที่แอปพลิเคชันเป้าหมายใช้ในการส่งออกวัตถุการเปิดใช้งาน[ 9 ]ซึ่งจำเป็นต้องให้นักพัฒนาแอปพลิเคชันเป้าหมายจัดทำเอกสารโมเดลวัตถุของตนต่อสาธารณะ การพัฒนาตัวควบคุมการทำงานอัตโนมัติโดยปราศจากความรู้เกี่ยวกับโมเดลวัตถุของแอปพลิเคชันเป้าหมายนั้น "ยากถึงเป็นไปไม่ได้" [ 10 ] เนื่องจากความซับซ้อนเหล่านี้ ส่วนประกอบการทำงานอัตโนมัติจึงมักมีไลบรารีประเภทซึ่งประกอบด้วยเมตาเดตาเกี่ยวกับคลาส อินเทอร์เฟซ และคุณสมบัติอื่นๆ ที่เปิดเผยโดยไลบรารีวัตถุ อินเทอร์เฟซจะถูกอธิบายในภาษาการกำหนดอินเทอร์เฟซของ Microsoftไลบรารีประเภทสามารถดูได้โดยใช้เครื่องมือต่างๆ เช่น Microsoft OLE/COM Object Viewer (ซึ่ง เป็น oleview.exeส่วนหนึ่งของMicrosoft Platform SDK ) หรือ Object Browser ใน Visual Basic (จนถึงเวอร์ชัน 6) และVisual Studio .NETไลบรารีประเภทใช้ในการสร้างรูปแบบพร็อกซี / โค้ด สับสำหรับการทำงานร่วมกันระหว่าง COM และแพลตฟอร์มอื่นๆ เช่นMicrosoft .NETและJavaตัวอย่างเช่นSDK ของ .NET Framework มีเครื่องมือที่สามารถสร้างพร็อกซี .NET DLL เพื่อเข้าถึงออบเจ็กต์ Automation โดยใช้ทั้งการผูกแบบเร็ว (ด้วยข้อมูลเกี่ยวกับอินเทอร์เฟซที่ดึงมาจากไลบรารีประเภท) และการผูกแบบช้า (ผ่าน IDispatch ซึ่งแมปกับ API การสะท้อนของ .NET) ด้วยบริดจ์ .NET-to-COM ในตัวที่เรียกว่าCOM Interop [ 11 ] ในขณะที่ Java ขาดการสนับสนุน COM ในตัว ชุดเครื่องมือเช่นJACOB [ 12 ]และ jSegue [ 13 ]สามารถสร้างซอร์สโค้ดพร็อกซี (ประกอบด้วยสองส่วน ชุดคลาส Java และซอร์สโค้ดC++สำหรับJava Native Interface DLL) จากไลบรารีประเภท โซลูชันเหล่านี้ใช้งานได้เฉพาะบน Windows เท่านั้น นอกจากนี้ยังมีไลบรารี j-Interop [ 14 ] ที่ใช้ Java ซึ่งช่วยให้สามารถทำงานร่วมกับส่วนประกอบ COM ได้โดยไม่ต้องใช้JNIโดยใช้โปรโตคอลสาย DCOM (MSRPC) และใช้งานได้บนแพลตฟอร์มที่ไม่ใช่ Windows ด้วย

Microsoft ได้จัดทำเอกสารแบบจำลองวัตถุของแอปพลิเคชันทั้งหมดในMicrosoft Office ไว้แล้ว [ 15 ]และ นักพัฒนาซอฟต์แวร์รายอื่น ๆ ก็ได้จัดทำเอกสารแบบจำลองวัตถุของแอปพลิเคชันของตนเช่น กัน แบบจำลองวัตถุจะถูกนำเสนอให้กับตัวควบคุมอัตโนมัติในรูปแบบของไลบรารีประเภท โดยมีอินเทอร์เฟซที่อธิบายไว้ในODL

การสนับสนุนด้านภาษา

ระบบอัตโนมัติรองรับภาษาโปรแกรมหลากหลายภาษา รวมถึงแต่ไม่จำกัดเพียง:

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • บริษัท ไมโครซอฟต์ (ธันวาคม 1993). คู่มืออ้างอิงสำหรับโปรแกรมเมอร์ OLE 2: การสร้างแอปพลิเคชันที่ตั้งโปรแกรมได้ด้วย OLE Automation เวอร์ชัน 2.ห้องสมุดอ้างอิงสำหรับโปรแกรมเมอร์. สำนักพิมพ์ไมโครซอฟต์ . ISBN 978-1-55615-629-8.
  • เคร็ก บร็อคชมิดท์ (1995) ภายใน OLE . ไมโครซอฟต์เพรส .
  • บริษัท ไมโครซอฟต์ (1996). คู่มืออ้างอิงสำหรับโปรแกรมเมอร์ OLE Automation . ห้องสมุดอ้างอิงสำหรับโปรแกรมเมอร์. สำนักพิมพ์ไมโครซอฟต์ . ISBN 978-1-55615-851-3.
  • บริษัท ไมโครซอฟต์ (1999). คู่มืออ้างอิงภาษา Visual Basic for Applications สำหรับMicrosoft Office 2000. สำนักพิมพ์ไมโครซอฟต์ . ISBN 978-1-57231-955-4.— เอกสารฉบับพิมพ์ฉบับเต็มเกี่ยวกับแบบจำลองวัตถุของ Microsoft Office
  • เอกสารวิจัยทั่วไปเกี่ยวกับ ระบบอัตโนมัติ OLE : บทนำและปัญหาในการนำระบบ OLE ไปใช้
  • " VOLE - ไลบรารีไดรเวอร์ COM/Automation สำหรับ C++ ที่ใช้งานง่าย " — ไลบรารีไดรเวอร์ COM Automation สำหรับ C++ แบบโอเพนซอร์สและไม่ขึ้นกับคอมไพเลอร์ สำหรับใช้เมื่อต้องควบคุม IDispatch โดยตรง VOLE มีความแข็งแกร่งสูง ครอบคลุมทุกแง่มุม "ระดับต่ำ" ของ IDispatch อย่างสมบูรณ์ และมีความยืดหยุ่นสูง สามารถรับและส่งคืนประเภทข้อมูล C++ ทั่วไปได้
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=OLE_Automation&oldid=1333191533 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ OLE Automation

ในการเขียนโปรแกรมแอปพลิเคชัน Microsoft Windows นั้น OLE Automation (ต่อมาเปลี่ยนชื่อเป็น Automation เฉยๆ [ 1 ] [ 2 ] ) เป็น กลไก การสื่อสารระหว่างกระบวนการ ที่สร้างโดย Microsoft...

ข้อดีและข้อจำกัด

เพื่อให้มั่นใจถึงความสามารถในการทำงานร่วมกัน อินเทอร์เฟซอัตโนมัติจึงถูกจำกัดให้ใช้เพียงชุดย่อยของประเภท COM ทั้งหมด [ 4 ] [ 5 ] โดยเฉพาะอย่างยิ่ง อินเทอร์เฟซอัตโนมัติจะต้องใช้ SAFEARRAY แทนอาร์เรย์ COM ดิบ

การใช้งาน

ระบบอัตโนมัติได้รับการออกแบบโดยคำนึงถึงความสะดวกในการเขียนสคริปต์ ดังนั้นตัวควบคุมมักจะจัดเตรียมภาษาต่างๆ เช่น Visual Basic for Applications ให้กับผู้ใช้ปลายทาง ทำให้พวกเขาสามารถควบคุมวัตถุอัตโนมัติผ่านสคริปต์ได้ วัตถุอัตโนมัติมักจะเขียนด้วยภาษาทั่วไป เช่น...

ไลบรารีประเภท

เพื่อให้แอปพลิเคชันทำงานโดยอัตโนมัติ นักพัฒนาตัวควบคุมการทำงานอัตโนมัติจะต้องทราบโมเดลวัตถุที่แอปพลิเคชันเป้าหมายใช้ในการส่งออกวัตถุการเปิดใช้งาน [ 9 ] ซึ่งจำเป็นต้องให้นักพัฒนาแอปพลิเคชันเป้าหมายจัดทำเอกสารโมเดลวัตถุของตนต่อสาธารณะ...