
Title: Eco.Core1 Software Component Specification
USPD: US.ECO.00013-01 90
Component Name: Eco.Core1
Short Description (max 300 char.): implements core EcoOS API, including microkenel with Interface bus
Component Use Category: MULTIPURPOSE
Component Type: DEVTOOL
CID: 000000000000000000000000000000AA
Marketplace URL: https://ip-office.com/product/8049727a-1332-46c7-bfd2-7e72b8c43f5a
Status: Draft
Modified Date: October 19, 2025
Version: 1.0
Tags: tool, kernel, microkernel
| Authors | Company |
|---|---|
| Vladimir Bashev | PEERF |
1. Overview
This document describes the requirements for the implementation of the Eco.Core1 component. (Component)
1.1. Introduction
Description.
1.2. Notes
- Keywords
1.3. Links
This paragraph contains links to an information to help you understand this document:
Marketplace (registry) link: https://ecoos.dev/product/fc2511fa-fa55-47bb-9972-50aa8866e789
2. Eco.Core1 Component
The Eco.Core1 component is
The component has the following description:
3. IEcoComponentFactory Interface
3.1. IEcoComponentFactory IDL
import "ErrEcoCodes.idl "
import "depend.idl"
[
object,
uguid(00000000-0000-0000-0000-000000000055),
]
interface IEcoComponentFactory : IEcoUnknown {
int16_t Alloc ([in] IEcoUnknown *pISystem,
[in] IEcoUnknown *pIUnknownOuter,
[in] const UGUID* riid,
[out] voidptr_t* ppv);
int16_t Init ([in] IEcoUnknown *pISystem,
[in] voidptr_t pv);
char_t* get_Name ([in] void);
char_t* get_Version ([in] void);
char_t* get_Manufacturer ([in] void);
}3.1.1. Alloc function
The function
new line
3.1.2. Init function
3.1.2. Init function
The function
3.1.3. get_Name function
The function
3.1.4 get_Version function
The function
3.1.5. get_Manufacturer function
The function
4. IEcoUnknown Interface
4.1. IEcoUnknown IDL
import "ErrEcoCodes.idl "
import "depend.idl"
[
object,
uguid(00000000-0000-0000-0000-0000000000AA),
]
interface IEcoUnknown {
int16_t QueryInterface ([in] const UGUID* riid,
[out] voidptr_t* ppv);
uint32_t AddRef ([in] void);
uint32_t Release ([in] void);
}4.1.1. QueryInterface function
The function
4.1.2. AddRef function
The function
4.1.3. Release function
The function
5. IEcoSystem1 Interface
5.1. IEcoSystem1 IDL
import "IEcoBase1.idl"
[
object,
uguid(00000000-0000-0000-0000-000000000100),
]
interface IEcoSystem1 : IEcoUnknown {
void set_Data ([in] voidptr_t pv);
void* get_Data ([in] void);
}5.1.1. set_Data function
The function
5.1.2. get_Data function
The function
6. IEcoConnectionPoint Interface
6.1. IEcoConnectionPoint IDL
import "IEcoBase1.idl"
[
object,
uguid(00000003-0000-0000-C000-000000000046),
]
interface IEcoConnectionPoint : IEcoUnknown {
int16_t GetConnectionInterface ([out] UGUID *pIID);
int16_t GetConnectionPointContainer ([out] IEcoConnectionPointContainer** ppCPC);
int16_t Advise ([in] IEcoUnknown* pUnkSink,
[out] uint32_t *pcCookie);
int16_t Unadvise ([in] uint32_t cCookie);
int16_t EnumConnections ([out] IEcoEnumConnections** ppEnum);
}6.1.1. GetConnectionInterface function
The function
6.1.2. GetConnectionPointContainer function
The function
6.1.3. Advise function
The function
6.1.4. Unadvise function
The function
6.1.5. EnumConnections function
The function
7. IEcoConnectionPointContainer Interface
7.1. IEcoConnectionPointContainer IDL
import "IEcoBase1.idl"
import "IEcoEnumConnectionPoints.idl "
[
object,
uguid(00000005-0000-0000-C000-000000000046),
]
interface IEcoConnectionPointContainer : IEcoUnknown {
int16_t EnumConnectionPoints ([out] IEcoEnumConnectionPoints** ppEnum);
int16_t FindConnectionPoint ([in] const UGUID* riid,
[out] IEcoConnectionPoint** ppCP);
}7.1.1. EnumConnectionPoints function
The function
7.1.2. FindConnectionPoint function
The function
8. IEcoEnumConnectionPoints Interface
8.1. IEcoEnumConnectionPoints IDL
import "IEcoBase1.idl"
import "IEcoConnectionPoint.idl"
[
object,
uguid(00000004-0000-0000-C000-000000000046),
]
interface IEcoEnumConnectionPoints : IEcoUnknown {
int16_t Next ([in] uint32_t cConnections,
[out] IEcoConnectionPoint** ppCP,
[out] uint32_t *pcFetched);
int16_t Skip ([in] uint32_t cConnections);
int16_t Reset ([in] void);
int16_t Clone ([out] IEcoEnumConnectionPoints** ppEnum);
}8.1.1. Next function
The function
8.1.2. Skip function
The function
8.1.3. Reset function
The function
8.1.4. Clone function
The function
9. IEcoEnumConnections Interface
9.1. IEcoEnumConnections IDL
import "IEcoBase1.idl"
[
object,
uguid(00000002-0000-0000-C000-000000000046),
]
interface IEcoEnumConnections : IEcoUnknown {
int16_t Next ([in] uint32_t cConnections,
[out] struct EcoConnectionData *rgcd,
[out] uint32_t *pcFetched);
int16_t Skip ([in] uint32_t cConnections);
int16_t Reset ([in] void);
int16_t Clone ([out] IEcoEnumConnections** ppEnum);
}9.1.1 Next function
The function
9.1.2. Skip function
The function
9.1.3. Reset function
The function
9.1.4. Clone function
The function
10. IEcoError1 Interface
10.1. IEcoError1 IDL
import "IEcoBase1.idl"
[
object,
uguid(00000000-0000-0000-0000-00000000FFFE),
]
interface IEcoError1 : IEcoUnknown {
void set_ErrorMode ([in] uint16_t errMode);
uint16_t get_ErrorMode ([in] void);
void set_LastError ([in] int16_t errCode);
uint16_t get_LastError ([in] void);
uint16_t get_Description ([in] int16_t errCode,
[in | out] voidptr_t pvMessage,
[in | out] uint16_t* iSize);
}10.1.1. set_ErrorMode function
The function
10.1.2. get_ErrorMode function
The function
10.1.3. set_LastError function
The function
10.1.4. get_LastError function
The function
10.1.5. get_Description function
The function
11. Error codes
The following table contains the error codes.
| Error code | Value | Description |
|---|---|---|
| ERR_ECO_SUCCESES | 0x0000 | Operation successful. |
| ERR_ECO_UNEXPECTED | 0xFFFF | Unexpected condition. |
| ERR_ECO_POINTER | 0xFFEE | NULL was passed incorrectly for a pointer value. |
| ERR_ECO_NOINTERFACE | 0xFFED | No such interface supported. |
| ERR_ECO_COMPONENT_NOTFOUND | 0xFFE9 | The component was not found. |

