2009-02-20 1 views
1

Для определенных операций с файлами мы используем объект PropertyBag VB6 для преобразования различных элементов в bytearray через свойство Content. Затем мы сохраняем bytearray как часть двоичного файла. Позже, когда мы загружаем файл, мы считываем файл, читаем в байтере и восстанавливаем элемент, используя свойство свойства propertybag. Мы используем это для хранения изображений, таких как логотип клиента.Преобразование VB6 PropertyBag в .NET

Какая поддержка поддерживает .NET Framework для работы с PropertyBags? Othan, чем писать COM-помощник DLL. Являются ли Property Bags только конструкцией VB6 или они являются частью общей системы автоматизации OLE/COM?

Надеюсь, что вы избегаете написания вспомогательной DLL-библиотеки VB6 и прямого доступа (через объявление) к необходимым COM-функциям. Я не собираюсь реплицировать функциональность, а скорее преобразовывать объект, хранящийся в bytearray, в свой эквивалент .NET.

ПРИМЕЧАНИЕ: Я не заинтересован в реализации функциональности пакета свойств в .NET. Только в том, чтобы читать байты сохраненного пакета свойств VB6.

ответ

1

Вы можете проверить Edanmo's Загрузить и сохранить фотографии в байтах массивов образец на его old VB6 sample page. Это очень просто и может быть использовано для «сериализации» любого объекта, который реализует интерфейс IPersistStream, например ADODB.Recordset. Свойство VB6 PropertyBag использует IPersistStream для объектов и, вероятно, реализует «настраиваемую» сериализацию типов вариантов VT_Xxx.

Btw, фрагмент кода Edanmo позволяет считывать изображения, хранящиеся с помощью копирования/вставки, в столбец изображения сетки доступа.

+0

Это была отличная находка. –

2

Поддерживается поддержка свойств PropertyBags в .NET. Сериализация объектов заменяет конструкцию PropertyBag.

Итак, как я вижу, у вас есть 2 варианта.

  1. Байт пули и писатель 10 или 20 строк Interop dll.
  2. Проанализируйте содержимое мешка сериализованной собственности и посмотреть, если вы можете расшифровать его и выяснить смещение изображений и потоки и т.д.

Я знаю, какой из них я бы направляясь.

+0

Я надеялся, что мешки для вещей сделали что-то глубоко в OLE-двигателе. Но похоже, что общение - это путь. Спасибо –