1
0
Files
wfassoc/wfassoc-cdylib/codegen/wfassoc.h

147 lines
3.7 KiB
C
Raw Normal View History

#pragma once
#ifndef __WFASSOC_H__
#define __WFASSOC_H__
#ifdef __cplusplus
#include <cstddef>
#include <cstdint>
#else // __cplusplus
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#endif // __cplusplus
#ifdef __cplusplus
using CStyleString = const char*;
using Token = uint64_t;
using HICON = void*;
#else // __cplusplus
typedef const char *CStyleString;
typedef uint64_t Token;
typedef void *HICON;
#endif // __cplusplus
2026-05-19 12:54:59 +08:00
#ifdef __cplusplus
constexpr HICON INVALID_HICON = nullptr;
constexpr size_t INVALID_INDEX = static_cast<size_t>(-1);
#else // __cplusplus
static const HICON INVALID_HICON = NULL;
static const size_t INVALID_INDEX = ((size_t)-1);
#endif // __cplusplus
#ifdef __cplusplus
enum class Scope : uint32_t {
User = 0u,
System = 1u
};
enum class View : uint32_t {
User = 0u,
System = 1u,
Hybrid = 2u
};
#else // __cplusplus
typedef uint32_t Scope;
static const Scope SCOPE_USER = 0u;
static const Scope SCOPE_SYSTEM = 1u;
typedef uint32_t View;
static const View VIEW_USER = 0u;
static const View VIEW_SYSTEM = 1u;
static const View VIEW_HYBRID = 2u;
#endif // __cplusplus
#ifdef __cplusplus
namespace wfassoc {
extern "C" {
#endif // __cplusplus
bool WFStartup(void);
bool WFShutdown(void);
CStyleString WFGetLastError(void);
bool WFHasPrivilege(void);
Token WFInvalidToken(void);
bool WFSchemaCreate(Token *out_schema);
bool WFSchemaDestroy(Token in_schema);
bool WFSchemaSetIdentifier(Token in_schema, CStyleString in_value);
bool WFSchemaSetPath(Token in_schema, CStyleString in_value);
bool WFSchemaSetClsid(Token in_schema, CStyleString in_value);
bool WFSchemaSetName(Token in_schema, CStyleString in_value);
bool WFSchemaSetIcon(Token in_schema, CStyleString in_value);
bool WFSchemaSetBehavior(Token in_schema, CStyleString in_value);
bool WFSchemaAddStr(Token in_schema, CStyleString in_name, CStyleString in_value);
bool WFSchemaAddIcon(Token in_schema, CStyleString in_name, CStyleString in_value);
bool WFSchemaAddBehavior(Token in_schema, CStyleString in_name, CStyleString in_value);
bool WFSchemaAddExt(Token in_schema,
CStyleString in_ext,
CStyleString in_ext_name,
CStyleString in_ext_icon,
CStyleString in_ext_behavior);
bool WFProgramCreate(Token in_schema, Token *out_program);
bool WFProgramDestroy(Token in_program);
2026-05-19 12:54:59 +08:00
bool WFProgramResolveName(Token in_program, CStyleString *out_name);
bool WFProgramResolveIcon(Token in_program, Token *out_icon_rc);
bool WFProgramExtsLen(Token in_program, size_t *out_len);
bool WFProgramGetExt(Token in_program, size_t in_index, Token *out_ext);
bool WFProgramFindExt(Token in_program, CStyleString in_body, size_t *out_index);
bool WFProgramRegister(Token in_program, Scope in_scope);
bool WFProgramUnregister(Token in_program, Scope in_scope);
bool WFProgramIsRegistered(Token in_program, Scope in_scope, bool *out_is_registered);
bool WFProgramLinkExt(Token in_program, Scope in_scope, size_t in_index);
bool WFProgramUnlinkExt(Token in_program, Scope in_scope, size_t in_index);
bool WFProgramQueryExt(Token in_program, View in_view, size_t in_index, Token *out_ext_status);
bool WFExtStatusDestroy(Token in_ext_status);
bool WFExtStatusGetName(Token in_ext_status, CStyleString *out_name);
bool WFExtStatusGetIcon(Token in_ext_status, HICON *out_icon);
2026-05-19 12:54:59 +08:00
bool WFIconRcDestroy(Token in_icon_rc);
bool WFIconRcGetIcon(Token in_icon_rc, HICON *out_icon);
bool WFExtDestroy(Token in_ext);
bool WFExtGetInner(Token in_ext, CStyleString *out_inner);
bool WFExtGetDottedInner(Token in_ext, CStyleString *out_inner);
#ifdef __cplusplus
} // extern "C"
} // namespace wfassoc
#endif // __cplusplus
#endif // __WFASSOC_H__