e1337e4016
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
246 lines
11 KiB
Markdown
246 lines
11 KiB
Markdown
---
|
||
title: "Интерфейс IUserDataStorage"
|
||
type: interface
|
||
api: [api7]
|
||
tags: [interface, api7, iuserdatastorage]
|
||
sources:
|
||
- iuserdatastorage.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 7 > Документ > Хранилища *
|
||
|
||
|
||
## Интерфейс IUserDataStorage
|
||
|
||
Интерфейс пользовательского хранилища.
|
||
Иерархия:
|
||
IKompasAPIObject
|
||
IUserDataStorage
|
||
Описание:
|
||
Хранилище представляет собой именованную «закладку» в коллекции. Для хранилища могут задаваться версии. Хранилище может быть защищено от изменений паролем. Парольная защита не препятствует просмотру содержания хранилища. Данные в хранилище представлены в виде таблицы, состоящей из двух столбцов – данных различных типов и комментария.
|
||
Примечание:
|
||
Интерфейс можно получить у коллекции хранилищ, используя свойство IUserDataStorages::Item.
|
||
Интерфейс IUserDataStorages
|
||
Интерфейс IUserDataStoragesMng
|
||
|
||
|
||
## AddObject - Добавить объект и комментарий в пользовательское хранилище
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
long AddObject( LPCTSTR pass,
|
||
const VARIANT & object,
|
||
LPCTSTR comment );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT AddObject( [in] BSTR Pass,
|
||
[in] VARIANT Object,
|
||
[in] BSTR Comment,
|
||
[out, retval] long* pVal);
|
||
Входные параметры:
|
||
Pass - пароль,
|
||
Object - указатель на объект,
|
||
comment - комментарий.
|
||
Возвращаемое значение:
|
||
- индекс объекта,
|
||
```
|
||
Примечание:
|
||
1. Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных. Индекс массива начинается с нуля.
|
||
2. Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.
|
||
3. Индексация массивов должна начинаться с нуля.
|
||
4. Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
|
||
5. Под объектом API следует понимать объекты:
|
||
для 3D хранилища - наследник от IModelObject,
|
||
для 2D хранилища - наследник от IDrawingObject (кроме ILayer).
|
||
|
||
|
||
## AddObjects - Добавить объекты пользовательского хранилища и комментарии к ним
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL AddObjects( BSTR Pass, VARIANT Objects, VARIANT Comments );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT AddObjects( BSTR Pass, VARIANT Objects, VARIANT Comments, BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успеха,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры:
|
||
Pass - пароль,
|
||
Objects - список данных в виде массива VT_ARRAY VT_VARIANT,
|
||
comments - список комментариев в виде массива VT_ARRAY VT_BSTR.
|
||
Версия Компас v21
|
||
```
|
||
|
||
|
||
## Clear - Очистить хранилище, удалив все объекты
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Clear ( LPCTSTR Pass );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Clear( [in] BSTR Pass,
|
||
[out, retval] VARIANT_BOOL* Result);
|
||
Входные параметры:
|
||
Pass - пароль.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успеха,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
|
||
|
||
|
||
## Delete - Удалить объект, заданный по индексу или по комментарию
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Delete( LPCTSTR pass,
|
||
const VARIANT & index );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT Delete( [in] BSTR Pass,
|
||
[in] VARIANT Index,
|
||
[out, retval] VARIANT_BOOL* PVal );
|
||
Входные параметры:
|
||
Pass - пароль,
|
||
Index - индекс объекта или комментарий.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успеха,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
1. В качестве индекса можно задать число или комментарий к объекту.
|
||
2. Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
|
||
|
||
|
||
## GetObject - Получить объект пользовательского хранилища и комментарий к нему по комментарию или индексу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BSTR GetObject( const VARIANT & index, VARIANT * object, long * numb );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT GetObject( [in] VARIANT Index,
|
||
[out] VARIANT * Object,
|
||
[out] long* numb,
|
||
[out, retval] BSTR * Comment );
|
||
Входные параметры:
|
||
Index - индекс объекта или комментарий.
|
||
Выходные параметры:
|
||
Object - указатель на объект хранилища,
|
||
numb - указатель на номер объекта.
|
||
Возвращаемое значение:
|
||
Comment (BSTR) - комментарий.
|
||
```
|
||
Примечание:
|
||
1. В качестве индекса можно задать число или комментарий к объекту.
|
||
2. Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных.
|
||
3. Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.
|
||
|
||
|
||
## Name - Имя хранилища
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
Тип данных: LPSTR
|
||
Name = StorageObj.Name(Pass) Получить свойство (* )
|
||
StorageObj.Name(Pass) = Name Установить свойство (* )
|
||
Name = StorageObj.GetName(Pass) Получить свойство (**)
|
||
StorageObj.SetName (Name, Pass) Установить свойство (**)
|
||
Входные параметры:
|
||
Pass (LPSTR) - пароль хранилища.
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Тип данных:BSTR.
|
||
StorageObj>get_Name (Pass, &Name) Получить свойство
|
||
StorageObj>put_Name (Pass, Name) Установить свойство
|
||
Входные параметры:
|
||
Pass (BSTR) - пароль хранилища.
|
||
```
|
||
Примечание:
|
||
Если хранилище защищено паролем, то изменить свойство можно, только указав правильный пароль.
|
||
|
||
|
||
## SetObject - Установить объект пользовательского хранилища и комментарий к нему по комментарию или индексу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
long SetObject( LPCTSTR pass,
|
||
const VARIANT index,
|
||
const VARIANT & object,
|
||
LPCTSTR comment );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT SetObject( [in] BSTR Pass,
|
||
[in] VARIANT Index,
|
||
[in] VARIANT Object,
|
||
[in] BSTR Comment,
|
||
[out, retval] long* pVal);
|
||
Входные параметры:
|
||
Pass - пароль,
|
||
Index - индекс объекта или комментарий,
|
||
Object - указатель на объект,
|
||
comment - комментарий.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успеха,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
1. В качестве индекса можно задать число или комментарий к объекту.
|
||
2. Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных.
|
||
3. Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.
|
||
4. Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
|
||
|
||
|
||
## SetPassword - Установить пароль на изменение данных в хранилище
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetPassword( LPCTSTR oldPass, LPCTSTR newPass );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT SetPassword( [in] BSTR OldPass,
|
||
[in] BSTR NewPass,
|
||
[out, retval] VARIANT_BOOL* Result);
|
||
Входные параметры:
|
||
OldPass - старый пароль,
|
||
NewPass - новый пароль.
|
||
```
|
||
Примечание:
|
||
1. Если хранилище защищено паролем от изменений, то изменить пароль можно, только указав текущий пароль.
|
||
2. По умолчанию пароль представляет собой пустую строку или нулевой указатель.
|
||
|
||
|
||
## Version - Версия хранилища
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
Тип данных: long
|
||
Version = StorageObj.Version(Pass) Получить свойство (* )
|
||
StorageObj.Version(Pass) = Version Установить свойство (* )
|
||
Version = StorageObj.GetVersion(Pass) Получить свойство (**)
|
||
StorageObj.SetVersion (Version, Pass) Установить свойство (**)
|
||
Входные параметры:
|
||
Pass (LPSTR) - пароль хранилища.
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Тип данных: long
|
||
StorageObj->get_Version (Pass, &Version) Получить свойство
|
||
StorageObj->put_Version (Pass, Version) Установить свойство
|
||
Входные параметры:
|
||
Pass (BSTR) - пароль хранилища.
|
||
```
|
||
Примечание:
|
||
Если хранилище защищено паролем, то изменить свойство можно, только указав пароль.
|