Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/iuserdatastorage.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
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>
2026-05-26 20:00:05 +03:00

246 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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) - пароль хранилища.
```
Примечание:
Если хранилище защищено паролем, то изменить свойство можно, только указав пароль.