mCtrl 0.8.1
|
00001 /* 00002 * Copyright (c) 2010-2011 Martin Mitas 00003 * 00004 * This library is free software; you can redistribute it and/or modify it 00005 * under the terms of the GNU Lesser General Public License as published by 00006 * the Free Software Foundation; either version 2.1 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public License 00015 * along with this library; if not, write to the Free Software Foundation, 00016 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00017 */ 00018 00019 #ifndef MCTRL_VALUE_H 00020 #define MCTRL_VALUE_H 00021 00022 #include <mCtrl/defs.h> 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00028 00136 typedef const void* MC_VALUETYPE; 00137 00142 typedef void* MC_VALUE; 00143 00144 00151 #define MC_VALUETYPE_ID_UNDEFINED 0 00152 00153 #define MC_VALUETYPE_ID_INT32 1 00154 00155 #define MC_VALUETYPE_ID_UINT32 2 00156 00157 #define MC_VALUETYPE_ID_INT64 3 00158 00159 #define MC_VALUETYPE_ID_UINT64 4 00160 00161 #define MC_VALUETYPE_ID_STRINGW 5 00162 00163 #define MC_VALUETYPE_ID_STRINGA 6 00164 00165 #define MC_VALUETYPE_ID_IMMSTRINGW 7 00166 00167 #define MC_VALUETYPE_ID_IMMSTRINGA 8 00168 00169 #define MC_VALUETYPE_ID_COLORREF 9 00170 00171 #define MC_VALUETYPE_ID_HICON 10 00172 00181 MC_VALUETYPE MCTRL_API mcValueType_GetBuiltin(int id); 00182 00183 00188 00195 BOOL MCTRL_API mcValue_CreateFromInt32(MC_VALUE* phValue, INT iValue); 00196 00203 BOOL MCTRL_API mcValue_CreateFromUInt32(MC_VALUE* phValue, UINT uValue); 00204 00211 BOOL MCTRL_API mcValue_CreateFromInt64(MC_VALUE* phValue, INT64 i64Value); 00212 00219 BOOL MCTRL_API mcValue_CreateFromUInt64(MC_VALUE* phValue, UINT64 u64Value); 00220 00227 BOOL MCTRL_API mcValue_CreateFromStringW(MC_VALUE* phValue, LPCWSTR lpStr); 00228 00235 BOOL MCTRL_API mcValue_CreateFromStringA(MC_VALUE* phValue, LPCSTR lpStr); 00236 00243 BOOL MCTRL_API mcValue_CreateFromImmStringW(MC_VALUE* phValue, LPCWSTR lpStr); 00244 00251 BOOL MCTRL_API mcValue_CreateFromImmStringA(MC_VALUE* phValue, LPCSTR lpStr); 00252 00259 BOOL MCTRL_API mcValue_CreateFromColorref(MC_VALUE* phValue, COLORREF crColor); 00260 00267 BOOL MCTRL_API mcValue_CreateFromHIcon(MC_VALUE* phValue, HICON hIcon); 00268 00276 00282 INT MCTRL_API mcValue_GetInt32(const MC_VALUE hValue); 00283 00289 UINT MCTRL_API mcValue_GetUInt32(const MC_VALUE hValue); 00290 00296 INT64 MCTRL_API mcValue_GetInt64(const MC_VALUE hValue); 00297 00303 UINT64 MCTRL_API mcValue_GetUInt64(const MC_VALUE hValue); 00304 00310 LPCWSTR MCTRL_API mcValue_GetStringW(const MC_VALUE hValue); 00311 00317 LPCSTR MCTRL_API mcValue_GetStringA(const MC_VALUE hValue); 00318 00324 LPCWSTR MCTRL_API mcValue_GetImmStringW(const MC_VALUE hValue); 00325 00331 LPCSTR MCTRL_API mcValue_GetImmStringA(const MC_VALUE hValue); 00332 00338 COLORREF MCTRL_API mcValue_GetColorref(const MC_VALUE hValue); 00339 00345 HICON MCTRL_API mcValue_GetHIcon(const MC_VALUE hValue); 00346 00354 00362 BOOL MCTRL_API mcValue_Duplicate(MC_VALUETYPE hType, MC_VALUE* phDest, const MC_VALUE hSrc); 00363 00369 void MCTRL_API mcValue_Destroy(MC_VALUETYPE hType, MC_VALUE hValue); 00370 00378 00379 #ifdef UNICODE 00380 00381 #define MC_VALUETYPE_ID_STRING MC_VALUETYPE_ID_STRINGW 00382 00383 #define MC_VALUETYPE_ID_IMMSTRING MC_VALUETYPE_ID_IMMSTRINGW 00384 00385 #define mcValue_CreateFromString mcValue_CreateFromStringW 00386 00387 #define mcValue_CreateFromImmString mcValue_CreateFromImmStringW 00388 00389 #define mcValue_GetString mcValue_GetStringW 00390 00391 #define mcValue_GetImmString mcValue_GetImmStringW 00392 #else 00393 #define MC_VALUETYPE_ID_STRING MC_VALUETYPE_ID_STRINGA 00394 #define MC_VALUETYPE_ID_IMMSTRING MC_VALUETYPE_ID_IMMSTRINGA 00395 #define mcValue_CreateFromString mcValue_CreateFromStringA 00396 #define mcValue_CreateFromImmString mcValue_CreateFromImmStringA 00397 #define mcValue_GetString mcValue_GetStringA 00398 #define mcValue_GetImmString mcValue_GetImmStringA 00399 #endif 00400 00404 #ifdef __cplusplus 00405 } /* extern "C" */ 00406 #endif 00407 00408 #endif /* MCTRL_VALUE_H */