Objek OLE dan Kontrol ActiveX

Objek OLE dan Kontrol ActiveX

Objek OLE dan Kontrol ActiveX

Aspose.Words FOSS untuk .NET menyediakan akses baca ke objek OLE yang disematkan dan kontrol ActiveX Forms 2.0 melalui titik masuk OleFormat dan kelas terkaitnya di Aspose.Words.Drawing dan Aspose.Words.Drawing.Ole.


Mengakses Data Objek OLE yang Disematkan

OleFormat diekspos oleh sebuah Shape yang disematkan dan menyediakan akses ke data mentah serta metadata dari objek yang disematkan. SuggestedFileName dan SuggestedExtension menjelaskan bagaimana objek yang disematkan akan disimpan, ProgId mengidentifikasi aplikasi server OLE yang membuatnya, dan IsLink membedakan objek yang ditautkan (SourceFullName/SourceItem menunjuk ke sumber eksternal) dari yang sepenuhnya disematkan. GetOleEntry(oleEntryName) membaca aliran bernama tertentu dari struktur berkas gabungan OLE, GetRawData() mengembalikan data mentah objek secara lengkap, dan Save(fileName) / Save(stream) menulis data asli objek yang disematkan ke disk atau aliran — berguna untuk mengekstrak berkas asli yang disematkan (misalnya spreadsheet atau presentasi yang disematkan) tanpa membukanya di aplikasi aslinya. OlePackage, yang dicapai melalui OleFormat.OlePackage, mengekspos FileName dan DisplayName untuk objek yang disematkan sebagai OLE Package.


Bekerja dengan Kontrol ActiveX Forms 2.0

Ketika objek yang disematkan merupakan kontrol ActiveX Microsoft Forms 2.0 (kotak centang, kotak teks, kotak kombo, dan kontrol interaktif serupa bukan dokumen yang disematkan), OleFormat.OleControl mengembalikan sebuah OleControl. Periksa properti IsForms2OleControl-nya, dan jika true, cast ke Forms2OleControl (kelas dasar abstrak untuk semua kontrol Forms 2.0) untuk mengakses properti khusus kontrol: Caption, Value, Enabled, Type (nilai Forms2OleControlType — CheckBox, Textbox, ComboBox, OptionButton, ListBox, CommandButton, dan lainnya), serta properti visual ForeColor, BackColor, Width, dan Height. Kontrol kontainer seperti frame mengekspos kontrol bersarang mereka melalui ChildNodes, sebuah Forms2OleControlCollection.


Tips dan Praktik Terbaik

  • Periksa OleFormat.IsLink sebelum mengasumsikan data objek tersemat ada secara lokal — objek yang ditautkan merujuk ke file eksternal melalui SourceFullName alih-alih menyematkan kontennya.
  • Gunakan SuggestedExtension bersama dengan Save() untuk menyusun nama file keluaran yang masuk akal saat mengekstrak objek tersemat secara massal.
  • Selalu periksa OleControl.IsForms2OleControl sebelum mengubah tipe ke Forms2OleControl — tidak setiap OleControl adalah kontrol Forms 2.0.
  • Forms2OleControlCollection.Count dan enumerasi melalui GetEnumerator() memungkinkan Anda menelusuri kontrol bersarang di dalam bingkai atau kontrol wadah multi-halaman.

Masalah Umum

MasalahPenyebabPerbaikan
GetRawData() mengembalikan data yang tidak terduga atau kosongObjek adalah tautan (IsLink == true), bukan tersematPeriksa IsLink terlebih dahulu; selesaikan SourceFullName untuk objek yang ditautkan
InvalidCastException melakukan casting OleControl menjadi Forms2OleControlKontrol bukan kontrol Forms 2.0Periksa IsForms2OleControl sebelum melakukan casting
GetOleEntry() mengembalikan null untuk stream bernamaNama stream tidak ada dalam struktur file komposit objek iniEnumerasikan nama entri sebenarnya alih-alih mengasumsikan nama tetap
Kontrol bersarang di dalam frame tidak ditemukanHanya memeriksa OleControl tingkat atas, bukan ChildNodesLakukan rekursi ke Forms2OleControl.ChildNodes untuk kontrol kontainer

FAQ

Bagaimana cara mengekstrak objek Excel atau PowerPoint yang tersemat dari dokumen Word?

Akses OleFormat dari shape, lalu panggil Save(fileName) atau GetRawData() untuk mengambil byte asli objek tersemat; gunakan SuggestedExtension untuk memberi nama file keluaran secara tepat.

Apa perbedaan antara objek OLE yang disematkan dan kontrol Forms 2.0?

Objek OLE yang disematkan (diakses melalui OleFormat secara langsung) biasanya merupakan dokumen lain (lembar kerja, presentasi); kontrol Forms 2.0 (OleFormat.OleControl → Forms2OleControl) adalah elemen UI interaktif seperti kotak centang atau kotak teks.

Bagaimana saya mengetahui apakah objek OLE tersebut ditautkan alih-alih disematkan?

Periksa OleFormat.IsLink — ketika true, SourceFullName dan SourceItem menggambarkan sumber eksternal alih-alih objek yang membawa data sendiri.

Bisakah saya membaca keterangan atau nilai dari kontrol kotak centang?

Ya — ubah tipe OleControl menjadi Forms2OleControl (setelah memastikan IsForms2OleControl) dan baca Caption serta Value.


API Reference Ringkasan

Kelas / MetodeDeskripsi
OleFormatTitik masuk untuk data dan metadata objek OLE yang disematkan
OleFormat.GetRawData()Ambil byte mentah objek yang disematkan
OleFormat.Save()Simpan data asli objek tersemat ke file atau aliran
OlePackageNama file/nama tampilan untuk objek OLE Package
OleControlRepresentasi dasar dari kontrol ActiveX yang tersemat
Forms2OleControlKontrol Microsoft Forms 2.0 (checkbox, textbox, combo box, dll.)
Forms2OleControlCollectionKoleksi node Forms2OleControl anak (misalnya di dalam sebuah frame)
Forms2OleControlTypeEnum jenis kontrol Forms 2.0

Lihat Juga

 Bahasa Indonesia