Αντικείμενα OLE και Έλεγχοι ActiveX

Αντικείμενα OLE και Έλεγχοι ActiveX

Αντικείμενα OLE και ActiveX Controls

Aspose.Words FOSS για .NET παρέχει πρόσβαση μόνο για ανάγνωση σε ενσωματωμένα αντικείμενα OLE και Forms 2.0 ActiveX controls μέσω του OleFormat entry point και των σχετικών κλάσεων του σε Aspose.Words.Drawing και Aspose.Words.Drawing.Ole.


Πρόσβαση σε δεδομένα ενσωματωμένου αντικειμένου OLE

OleFormat εκτίθεται από ένα ενσωματωμένο Shape και παρέχει πρόσβαση στα ακατέργαστα δεδομένα και τα μεταδεδομένα του ενσωματωμένου αντικειμένου. SuggestedFileName και SuggestedExtension περιγράφουν πώς θα αποθηκευτεί το ενσωματωμένο αντικείμενο, ProgId εντοπίζει την εφαρμογή διακομιστή OLE που το δημιούργησε, και IsLink διακρίνει ένα συνδεδεμένο αντικείμενο (SourceFullName/SourceItem δείχνουν στην εξωτερική πηγή) από ένα πλήρως ενσωματωμένο. GetOleEntry(oleEntryName) διαβάζει ένα συγκεκριμένο ονομαστικό ρεύμα από τη δομή σύνθετου αρχείου OLE, GetRawData() επιστρέφει τα πλήρη ακατέργαστα δεδομένα του αντικειμένου, και Save(fileName) / Save(stream) γράφουν τα εγγενή δεδομένα του ενσωματωμένου αντικειμένου σε δίσκο ή ρεύμα — χρήσιμο για εξαγωγή του αρχικού ενσωματωμένου αρχείου (π.χ. ένα ενσωματωμένο υπολογιστικό φύλλο ή παρουσίαση) χωρίς άνοιγμα στην εγγενή εφαρμογή του. OlePackage, που προέρχεται μέσω OleFormat.OlePackage, εκθέτει FileName και DisplayName για αντικείμενα ενσωματωμένα ως OLE Package.


Εργασία με Forms 2.0 ActiveX Controls

Όταν το ενσωματωμένο αντικείμενο είναι ένας έλεγχος Microsoft Forms 2.0 ActiveX (πλαίσια ελέγχου, πεδία κειμένου, συνδυαστικά πλαίσια και παρόμοιοι διαδραστικοί έλεγχοι αντί για ενσωματωμένα έγγραφα), OleFormat.OleControl επιστρέφει ένα OleControl. Ελέγξτε την ιδιότητα IsForms2OleControl του, και εάν true, μετατρέψτε το σε Forms2OleControl (η αφηρημένη βασική κλάση για όλους τους ελέγχους Forms 2.0) για να αποκτήσετε πρόσβαση σε ιδιότητες ειδικές για τον έλεγχο: Caption, Value, Enabled, Type (μια τιμή Forms2OleControlType — CheckBox, Textbox, ComboBox, OptionButton, ListBox, CommandButton και άλλα), καθώς και οπτικές ιδιότητες ForeColor, BackColor, Width και Height. Έλεγχοι container όπως τα πλαίσια εκθέτουν τα ένθετα στοιχεία τους μέσω ChildNodes, ένα Forms2OleControlCollection.


Συμβουλές και βέλτιστες πρακτικές

  • Ελέγξτε το OleFormat.IsLink πριν υποθέσετε ότι τα δεδομένα ενσωματωμένου αντικειμένου υπάρχουν τοπικά — τα συνδεδεμένα αντικείμενα παραπέμπουν σε εξωτερικό αρχείο μέσω του SourceFullName αντί να ενσωματώνουν το περιεχόμενό τους.
  • Χρησιμοποιήστε το SuggestedExtension μαζί με το Save() για να δημιουργήσετε ένα λογικό όνομα αρχείου εξόδου όταν εξάγετε ενσωματωμένα αντικείμενα μαζικά.
  • Πάντα ελέγξτε το OleControl.IsForms2OleControl πριν κάνετε cast σε Forms2OleControl — δεν είναι κάθε OleControl έλεγχος Forms 2.0.
  • Το Forms2OleControlCollection.Count και η απαρίθμηση μέσω του GetEnumerator() σάς επιτρέπουν να περιηγηθείτε σε ένθετα στοιχεία ελέγχου μέσα σε ένα πλαίσιο ή σε ένα έλεγχο δοχείου πολλαπλών σελίδων.

Κοινά προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
GetRawData() επιστρέφει μη αναμενόμενα/κενά δεδομέναΤο αντικείμενο είναι ένας σύνδεσμος (IsLink == true), όχι ενσωματωμένοΕλέγξτε πρώτα το IsLink; επιλύστε το SourceFullName για συνδεδεμένα αντικείμενα
InvalidCastException μετατρέπει το OleControl σε Forms2OleControlΟ έλεγχος δεν είναι έλεγχος Forms 2.0Ελέγξτε το IsForms2OleControl πριν τη μετατροπή
GetOleEntry() επιστρέφει null για ένα ονομασμένο streamΤο όνομα του stream δεν υπάρχει στη σύνθετη δομή αρχείου αυτού του αντικειμένουΑπαριθμήστε τα πραγματικά ονόματα καταχωρήσεων αντί να υποθέτετε ένα σταθερό όνομα
Δεν βρέθηκαν ενσωματωμένοι έλεγχοι μέσα σε ένα frameΕλέγχθηκε μόνο το ανώτατο επίπεδο OleControl, όχι το ChildNodesΑναδρομή στο Forms2OleControl.ChildNodes για τα container controls

FAQ

Πώς μπορώ να εξάγω ένα ενσωματωμένο αντικείμενο Excel ή PowerPoint από ένα έγγραφο Word;

Προσπελάστε το OleFormat του σχήματος, μετά καλέστε το Save(fileName) ή το GetRawData() για να ανακτήσετε τα εγγενή bytes του ενσωματωμένου αντικειμένου· χρησιμοποιήστε το SuggestedExtension για να ονομάσετε το αρχείο εξόδου κατάλληλα.

Ποια είναι η διαφορά μεταξύ ενός ενσωματωμένου αντικειμένου OLE και ενός ελέγχου Forms 2.0;

Ένα ενσωματωμένο αντικείμενο OLE (πρόσβαση μέσω OleFormat απευθείας) είναι συνήθως ένα άλλο έγγραφο (υπολογιστικό φύλλο, παρουσίαση); ένας έλεγχος Forms 2.0 (OleFormat.OleControl → Forms2OleControl) είναι ένα διαδραστικό στοιχείο UI όπως ένα πλαίσιο ελέγχου ή πεδίο κειμένου.

Πώς μπορώ να καταλάβω αν ένα αντικείμενο OLE είναι συνδεδεμένο αντί για ενσωματωμένο;

Ελέγξτε το OleFormat.IsLink — όταν τα true, SourceFullName και SourceItem περιγράφουν την εξωτερική πηγή αντί για το αντικείμενο που φέρει τα δικά του δεδομένα.

Μπορώ να διαβάσω τη λεζάντα ή την τιμή ενός ελέγχου checkbox;

Ναι — μετατρέψτε το OleControl σε Forms2OleControl (αφού επιβεβαιώσετε το IsForms2OleControl) και διαβάστε τα Caption και Value.


API Reference Περίληψη

Κλάση / ΜέθοδοςΠεριγραφή
OleFormatΣημείο εισόδου για τα δεδομένα και τα μεταδεδομένα ενός ενσωματωμένου αντικειμένου OLE
OleFormat.GetRawData()Ανάκτηση των ακατέργαστων bytes του ενσωματωμένου αντικειμένου
OleFormat.Save()Αποθήκευση των εγγενών δεδομένων του ενσωματωμένου αντικειμένου σε αρχείο ή ροή
OlePackageΌνομα αρχείου/όνομα εμφάνισης για ένα αντικείμενο OLE Package
OleControlΒασική αναπαράσταση ενός ενσωματωμένου ελέγχου ActiveX
Forms2OleControlMicrosoft Forms 2.0 control (πλαίσιο ελέγχου, πεδίο κειμένου, συνδυαστικό πλαίσιο, κλπ.)
Forms2OleControlCollectionΣυλλογή παιδικών κόμβων Forms2OleControl (π.χ. μέσα σε ένα πλαίσιο)
Forms2OleControlTypeΑπαρίθμηση τύπων ελέγχων Forms 2.0

Δείτε επίσης

 Ελληνικά