Mobile SDK for Windows Apps2.0
Transforming Windows apps into Mobile apps
cmp.h
Go to the documentation of this file.
00001 
00011 #pragma once
00012 
00013 // only include the definitions if CMPCOM.h has not been loaded already
00014 #ifndef __cmpcom_h__
00015 #include <cmptypes.h>
00016 #include <cmpcap.h>
00017 #include <cmpenum.h>
00018 #include <cmpflags.h>
00019 #include <cmpstruct.h>
00020 #endif
00021 
00022 #include <OleAuto.h>
00023 #include <cmpresult.h>
00024 
00025 // everything in this file assumes C naming conventions
00026 #ifdef __cplusplus
00027 extern "C"
00028 {
00029 #endif
00030 
00031 // defines
00032 
00033 // all of our API are based on standard call, just like WINAPI
00034 // except for some private interfaces
00035 #define CMPCALL     __stdcall
00036 #define CMPAPI      CMPCALL
00037 #define CMPEXPORT   __declspec(dllexport)
00038 #define CMPIMPORT   __declspec(dllimport)
00039 #define CMPCDECL    __cdecl
00040 
00041 #define CMPAPIENTRY         CMPEXPORT CMPRESULT CMPCALL
00042 #define CMP_CDECL_APIENTRY  CMPEXPORT CMPRESULT CMPCDECL
00043 
00044 typedef char *UTF8_STRING;
00045 
00046 // event handler callback
00047 typedef PVOID CMP_EVENT_CALLBACK;
00048 
00049 #define CMP_VERSION_MAJOR       2
00050 #define CMP_VERSION_MINOR       0
00051 
00052 #define CMP_VERSION_ONE_MAJOR   1
00053 #define CMP_VERSION_ONE_MINOR   0
00054 
00055 #define CMP_VERSION_TWO_MAJOR   2
00056 #define CMP_VERSION_TWO_MINOR   0
00057 
00078 #ifdef CMPCOM
00079 [export]
00080 #endif
00081 struct CMP_FILEVERSION
00082 {
00083     USHORT      Major;
00084     USHORT      Minor;
00085     USHORT      Build;
00086     USHORT      Revision;
00087 };
00088 
00089 #ifndef __cplusplus
00090 typedef struct CMP_FILEVERSION CMP_FILEVERSION;
00091 #endif
00092 
00122 #ifdef CMPCOM
00123 [export, public]
00124 #endif
00125 typedef struct CMP_VERSION
00126 {
00127     USHORT          CMPAPI_Major;
00128     USHORT          CMPAPI_Minor;
00129     LPCSTR          CMPAPI_BuildDate;
00130 
00131     LPCSTR          CMPAPIDLL_Name;
00132     CMP_FILEVERSION CMPAPIDLL;
00133 
00134     LPCSTR          CMPCOMDLL_Name;
00135     CMP_FILEVERSION CMPCOMDLL;
00136 
00137 } CMP_VERSION;
00138 
00139 
00140 /*
00141  * CMPInitialize - initialize the COM threading model
00142  */
00143 CMPAPIENTRY CMPInitialize(BOOL MultiThreaded);
00144 CMPAPIENTRY CMPUninitialize();
00145 
00146 // Open/Close
00147 CMPAPIENTRY CMPOpen(HANDLE *phCMP);
00148 CMPAPIENTRY CMPClose(HANDLE hCMP);
00149 
00150 // Version
00151 CMPAPIENTRY CMPGetAPIVersion(HANDLE hCMP, CMP_VERSION *cmpVersion);
00152 CMPAPIENTRY CMPGetDLLPath(HANDLE hCMP, LPCSTR DLLfilename, LPSTR DLLfilepath, UINT32 pathLength);
00153 
00154 // CMP Process
00155 CMPAPIENTRY CMPProcessDetect(HANDLE hCMP, DWORD processId, PBOOL detectFlag);
00156 CMPAPIENTRY CMPRegisterProcess(HANDLE hCMP, DWORD processId);
00157 CMPAPIENTRY CMPUnregisterProcess(HANDLE hCMP, DWORD processId);
00158 
00159 // Session
00160 CMPAPIENTRY CMPOpenSession(HANDLE hCMP);
00161 CMPAPIENTRY CMPCloseSession(HANDLE hCMP);
00162 CMPAPIENTRY CMPSetSessionOptionBool(HANDLE hCMP, CMP_SESSION_OPTION option, BOOL value);
00163 CMPAPIENTRY CMPGetSessionOptionBool(HANDLE hCMP, CMP_SESSION_OPTION option, BOOL *value);
00164 CMPAPIENTRY CMPGetSessionState(HANDLE hCMP, CMP_SESSION_STATE* sessionState);
00165 
00166 // Button
00167 CMPAPIENTRY CMPGetButtonTarget(HANDLE hCMP, CMP_BUTTON_ID buttonId, CMP_BUTTON_TARGET* buttonTarget);
00168 CMPAPIENTRY CMPSetButtonTarget(HANDLE hCMP, CMP_BUTTON_ID buttonId, CMP_BUTTON_TARGET buttonTarget);
00169 
00170 // Camera
00171 CMPAPIENTRY CMPTakePicture(HANDLE hCMP, CMP_UNIQUE_ID pictureId, CMP_IMAGE_FORMAT imageFormat);
00172 CMPAPIENTRY CMPGetPictureFilename(HANDLE hCMP, CMP_UNIQUE_ID pictureId, UTF8_STRING filename, UINT32 bufferLength, PUINT32 returnedLength);
00173 CMPAPIENTRY CMPGetPictureState(HANDLE hCMP, CMP_UNIQUE_ID pictureId, PUINT32 size, CMP_PICTURE_STATE *pictState);
00174 CMPAPIENTRY CMPRemovePicture(HANDLE hCMP, CMP_UNIQUE_ID pictureId);
00175 
00176 // Controls
00177 CMPAPIENTRY CMPGetControlsFlags(HANDLE hCMP, PUINT16 controlFlags);
00178 CMPAPIENTRY CMPDisableControls(HANDLE hCMP);
00179 CMPAPIENTRY CMPEnableControls(HANDLE hCMP);
00180 
00181 // Device
00182 CMPAPIENTRY CMPGetDevicePropertyBool(HANDLE hCMP, CMP_DEV_BOOL_PROP_ID propertyId, BOOL* value);
00183 CMPAPIENTRY CMPGetDevicePropertyString(HANDLE hCMP, CMP_DEV_STRING_PROP_ID propertyId, UTF8_STRING propertyString, 
00184                                             UINT32 propertyBufferSize, PUINT32 returnedSize);
00185 
00186 // Display
00187 CMPAPIENTRY CMPGetOrientation(HANDLE hCMP, CMP_ORIENTATION_DATA* orientationData);
00188 CMPAPIENTRY CMPSetOrientation(HANDLE hCMP, CMP_ORIENTATION_POSITION orientation, UINT16 orientationFlags);
00189 CMPAPIENTRY CMPGetScrollMode(HANDLE hCMP, CMP_SCROLL_MODE* scrollMode);
00190 CMPAPIENTRY CMPSetScrollMode(HANDLE hCMP, CMP_SCROLL_MODE scrollMode);
00191 CMPAPIENTRY CMPGetDisplaySettings(HANDLE hCMP, CMP_DISPLAY_SETTINGS* dispSettings);
00192 CMPAPIENTRY CMPGetViewportOrigin(HANDLE hCMP, CMP_DISPLAY_POINT* pt);
00193 CMPAPIENTRY CMPSetViewportOrigin(HANDLE hCMP, CMP_DISPLAY_POINT* pt, UINT16 viewportFlags);
00194 CMPAPIENTRY CMPGetViewport(HANDLE hCMP, INT16 *flags, INT16 *zoomFactor, CMP_DISPLAY_RECT* serverViewport, CMP_DISPLAY_RECT *clientViewport);
00195 CMPAPIENTRY CMPSetViewport(HANDLE hCMP, INT16 flags, INT16 zoomFactor, CMP_DISPLAY_RECT* serverViewport);
00196 
00197 
00198 // Keyboard
00199 CMPAPIENTRY CMPGetKeyboardState(HANDLE hCMP, CMP_KEYBOARD_STATE* kybdState);
00200 CMPAPIENTRY CMPShowKeyboard(HANDLE hCMP, CMP_KEYBOARD_STATE* kybdState);
00201 CMPAPIENTRY CMPHideKeyboard(HANDLE hCMP);
00202 
00203 // Message
00204 CMPAPIENTRY CMPSendSMS(HANDLE hCMP, UTF8_STRING phoneNumber, CMP_UNIQUE_ID msgId, UTF8_STRING SMSText);
00205 
00206 // Phone
00207 CMPAPIENTRY CMPStartCall(HANDLE hCMP, UTF8_STRING phoneNumber, CMP_UNIQUE_ID callId);
00208 
00209 // Picker
00210 CMPAPIENTRY CMPShowPicker(HANDLE hCMP, CMP_UNIQUE_ID controlId, CMP_DISPLAY_RECT* rect, UINT32 selectedIndex,
00211                           UINT32 listItemsCount, UTF8_STRING listItems, UTF8_STRING title);
00212 CMPAPIENTRY CMPShowPickerUTF16(HANDLE hCMP, CMP_UNIQUE_ID controlId, CMP_DISPLAY_RECT* rect, UINT32 selectedIndex,
00213                                UINT32 listItemsCount, LPCWSTR listItems, LPCWSTR title);
00214 CMPAPIENTRY CMPHidePicker(HANDLE hCMP, CMP_UNIQUE_ID controlId);
00215 CMPAPIENTRY CMPGetPickerState(HANDLE hCMP, CMP_UNIQUE_ID controlId, PUINT16 pickerState);
00216 
00217 // capabilities
00218 CMPAPIENTRY CMPGetCapabilityBool(HANDLE hCMP,   CMP_CAP_ID capID, UINT16 keyId, PBOOL   value);
00219 CMPAPIENTRY CMPGetCapabilityInt16(HANDLE hCMP,  CMP_CAP_ID CapID, UINT16 KeyId, PINT16 Value);
00220 CMPAPIENTRY CMPGetCapabilityUInt16(HANDLE hCMP, CMP_CAP_ID capID, UINT16 keyId, PUINT16 value);
00221 CMPAPIENTRY CMPGetCapabilityInt32(HANDLE hCMP,  CMP_CAP_ID capID, UINT16 keyId, PINT32  value);
00222 CMPAPIENTRY CMPGetCapabilityUInt32(HANDLE hCMP, CMP_CAP_ID capID, UINT16 keyId, PUINT32 value);
00223 
00224 // notification
00225 CMPAPIENTRY CMPNotifyUser(HANDLE hCMP, CMP_UNIQUE_ID notificationId, USHORT notificationFlags, UTF8_STRING notificationText);
00226 
00227 // channel
00228 CMPAPIENTRY CMPGetChannelState(HANDLE hCMP, CMP_CHANNEL_STATE* state);
00229 
00230 // Events
00231 CMPAPIENTRY CMPFilterEvent(HANDLE hCMP, CMP_EVENT_ID eventId, UINT16 filterFlags);
00232 
00233 // Version 2 API
00234 CMPAPIENTRY CMPOpenForProcess(HANDLE *phCMP, DWORD processId);
00235 
00236 CMPAPIENTRY CMPCapturePicture(HANDLE hCMP, const CMP_CAPTURE_PICTURE_OPTIONS *options, CMP_UNIQUE_LONG_ID *pictureId);
00237 CMPAPIENTRY CMPCaptureVideo(HANDLE hCMP, const CMP_CAPTURE_VIDEO_OPTIONS *options, CMP_UNIQUE_LONG_ID *videoId);
00238 CMPAPIENTRY CMPCaptureAudio(HANDLE hCMP, const CMP_CAPTURE_AUDIO_OPTIONS *options, CMP_UNIQUE_LONG_ID *audioId);
00239 
00240 // applies to captured pictures, videos, and audio clips
00241 CMPAPIENTRY CMPRemoveCapturedData(HANDLE hCMP, CMP_UNIQUE_LONG_ID captureId);
00242 
00243 CMPAPIENTRY CMPSetSupportedOrientations(HANDLE hCMP, CMP_SUPPORTED_ORIENTATIONS supportedOrientations);
00244 CMPAPIENTRY CMPGetSupportedOrientations(HANDLE hCMP, CMP_SUPPORTED_ORIENTATIONS *supportedOrientations);
00245 
00246 // generic event handler register/unregister
00247 CMPAPIENTRY CMPRegisterForEvent(HANDLE hCMP, CMP_EVENT_ID eventId, CMP_EVENT_CALLBACK eventHandler);
00248 CMPAPIENTRY CMPUnregisterForEvent(HANDLE hCMP, CMP_EVENT_ID eventId, CMP_EVENT_CALLBACK eventHandler);
00249 
00250 // Event callbacks
00251 typedef void (CMPCALL *PFN_EVENT_BUTTON_PRESSED) (HANDLE hCMP, CMP_BUTTON_ID buttonId);
00252 typedef void (CMPCALL *PFN_EVENT_DISPLAY_SETTINGS_CHANGED) (HANDLE hCMP, INT16 MetricFlags, INT32 pixelWidth, INT32 pixelHeight,
00253                                         INT16 colorDepth, INT32 XPixelsPerInch, INT32 YPixelsPerInch,
00254                                         CMP_ORIENTATION_POSITION orientation, INT32 WidthMilliInches, INT32 HeightMilliInches,
00255                                         INT32 NormalizedDPI);
00256 typedef void (CMPCALL *PFN_EVENT_ORIENTATION_CHANGED)(HANDLE hCMP, CMPRESULT rc, CMP_ORIENTATION_POSITION deviceOrientation,
00257                    CMP_ORIENTATION_POSITION appOrientation, UINT16 orientationFlags);
00258 typedef void (CMPCALL *PFN_EVENT_SCROLL_MODE_CHANGED)(HANDLE hCMP, CMPRESULT rc, CMP_SCROLL_MODE scrollMode);
00259 typedef void (CMPCALL *PFN_EVENT_KEYBOARD_STATE_CHANGED)(HANDLE hCMP, CMPRESULT rc, CMP_KEYBOARD_TYPE keyboardType, 
00260                    INT16 keyboardStateFlags, CMP_KEYBOARD_AUTOCAPS kybdAutoCap, CMP_KEYBOARD_RETURNKEY kybdReturnKey);
00261 typedef void (CMPCALL *PFN_EVENT_VIEWPORT_ORIGIN_CHANGED)(HANDLE hCMP, CMPRESULT rc, INT32 left, INT32 top);
00262 typedef void (CMPCALL *PFN_EVENT_VIEWPORT_CHANGED)(HANDLE hCMP, CMPRESULT rc, INT16 flags, INT16 zoomFactor, 
00263                                          INT32 x0Server, INT32 y0Server, INT32 x1Server, INT32 y1Server,
00264                                          INT32 x0Client, INT32 y0Client, INT32 x1Client, INT32 y1Client);
00265 typedef void (CMPCALL *PFN_EVENT_BUTTON_TARGET_CHANGED)(HANDLE hCMP, CMPRESULT rc, CMP_BUTTON_ID buttonId, CMP_BUTTON_TARGET buttonTarget);
00266 typedef void (CMPCALL *PFN_EVENT_CONTROL_STATE_CHANGED)(HANDLE hCMP, CMPRESULT rc, UINT16 controlStateFlags);
00267 typedef void (CMPCALL *PFN_EVENT_SMS_STARTED)(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID SMSId);
00268 typedef void (CMPCALL *PFN_EVENT_PHONE_CALL_STARTED)(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID phoneCallId);
00269 typedef void (CMPCALL *PFN_EVENT_PICKER_CONTROL_STATE_CHANGED)(HANDLE hCMP, CMP_UNIQUE_ID pickerId, INT16 pickerStateFlags, CMPRESULT rc, INT16 selectedIndex);
00270 typedef void (CMPCALL *PFN_EVENT_CAMERA_PICTURE_TAKEN)(HANDLE hCMP, CMPRESULT result, CMP_UNIQUE_ID pictureId, 
00271                                                        CMP_IMAGE_FORMAT pictureFormat, UINT32 pictureSize, UTF8_STRING filename);
00272 typedef void (CMPCALL *PFN_EVENT_FILTER_CHANGED)(HANDLE hCMP, CMPRESULT rc, CMP_EVENT_ID eventId, INT16 filterFlags);
00273 typedef void (CMPCALL *PFN_EVENT_USER_NOTIFIED)(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID notificationId);
00274 typedef void (CMPCALL *PFN_EVENT_CAMERA_PICTURE_REMOVED)(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID pictureId);
00275 typedef void (CMPCALL *PFN_EVENT_SESSION_STATE_CHANGED)(HANDLE hCMP, CMP_SESSION_STATE state);
00276 typedef void (CMPCALL *PFN_EVENT_CHANNEL_STATE_CHANGED)(HANDLE hCMP, CMP_CHANNEL_STATE state);
00277 
00278 typedef void (CMPCALL *PFN_EVENT_PICTURE_CAPTURED)(HANDLE hCMP, CMPRESULT result, CMP_UNIQUE_LONG_ID uniqueId, 
00279                                                    UTF8_STRING pictureMetadata, UTF8_STRING filename, UTF8_STRING thumbnail, UINT32 pictureSize, const CMP_CAPTURE_PICTURE_OPTIONS* options);
00280 typedef void (CMPCALL *PFN_EVENT_VIDEO_CAPTURED)(HANDLE hCMP, CMPRESULT result, CMP_UNIQUE_LONG_ID uniqueId, 
00281                                                  UTF8_STRING videoMetadata, UTF8_STRING filename, UINT32 videoSize, const CMP_CAPTURE_VIDEO_OPTIONS* options);
00282 typedef void (CMPCALL *PFN_EVENT_AUDIO_CAPTURED)(HANDLE hCMP, CMPRESULT result, CMP_UNIQUE_LONG_ID uniqueId, 
00283                                                  UTF8_STRING audioMetadata, UTF8_STRING filename, UINT32 audioSize, const CMP_CAPTURE_AUDIO_OPTIONS* options);
00284 typedef void (CMPCALL *PFN_EVENT_SUPPORTED_ORIENTATIONS_CHANGED)(HANDLE hCMP, CMPRESULT result, CMP_SUPPORTED_ORIENTATIONS supportedOrientation);
00285 typedef void (CMPCALL *PFN_EVENT_APP_FOREGROUND)(HANDLE hCMP);
00286 typedef void (CMPCALL *PFN_EVENT_APP_BACKGROUND)(HANDLE hCMP);
00287 typedef void (CMPCALL *PFN_EVENT_FOREGROUND_APP_CHANGED)(HANDLE hCMP, DWORD foregroundProcessId);
00288 typedef void (CMPCALL *PFN_EVENT_CAPTURE_MEDIA_REMOVED)(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_LONG_ID captureId);
00289 
00290 // Event prototypes (only for documentation)
00291 
00292 // we cannot use these protocols in COM and they end up interferring with our event callbacks with visual studio (not the build though).
00293 #ifndef CMPCOM
00294 
00305 void CMPCALL ButtonPressed(HANDLE hCMP, CMP_BUTTON_ID buttonId);
00306 
00329 void CMPCALL DisplaySettingsChanged(HANDLE hCMP, INT16 MetricFlags, INT32 pixelWidth, INT32 pixelHeight,
00330                             INT16 colorDepth, INT32 XPixelsPerInch, INT32 YPixelsPerInch,
00331                             CMP_ORIENTATION_POSITION orientation, INT32 WidthMilliInches, INT32 HeightMilliInches,
00332                             INT32 normalizedDPI);
00333 
00348 void CMPCALL OrientationChanged(HANDLE hCMP, CMPRESULT rc, CMP_ORIENTATION_POSITION deviceOrientation,
00349                                 CMP_ORIENTATION_POSITION appOrientation, UINT16 orientationFlags);
00350 
00362 void CMPCALL ScrollModeChanged(HANDLE hCMP, CMPRESULT rc, CMP_SCROLL_MODE scrollMode);
00363 
00380 void CMPCALL KeyboardStateChanged(HANDLE hCMP, CMPRESULT rc, CMP_KEYBOARD_TYPE keyboardType, 
00381                                   INT16 keyboardStateFlags, CMP_KEYBOARD_AUTOCAPS kybdAutoCap, 
00382                                   CMP_KEYBOARD_RETURNKEY kybdReturnKey);
00383 
00396 void CMPCALL ViewportOriginChanged(HANDLE hCMP, CMPRESULT rc, INT32 left, INT32 top);
00397 
00410 void CMPCALL ButtonTargetChanged(HANDLE hCMP, CMPRESULT rc, CMP_BUTTON_ID buttonId, CMP_BUTTON_TARGET buttonTarget);
00411 
00423 void CMPCALL ControlStateChanged(HANDLE hCMP, CMPRESULT rc, UINT16 controlStateFlags);
00424 
00436 void CMPCALL SMSStarted(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID SMSId);
00437 
00449 void CMPCALL PhoneCallStarted(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID phoneCallId);
00450 
00464 void CMPCALL PickerControlStateChanged(HANDLE hCMP, CMP_UNIQUE_ID pickerId, INT16 pickerStateFlags, CMPRESULT rc, INT16 selectedIndex);
00465 
00481 void CMPCALL PictureTaken(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID pictureId, 
00482                           CMP_IMAGE_FORMAT pictureFormat, UINT32 pictureSize, UTF8_STRING filename);
00483 
00496 void CMPCALL FilterChanged(HANDLE hCMP, CMPRESULT rc, CMP_EVENT_ID eventId, INT16 filterFlags);
00497 
00509 void CMPCALL UserNotified(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID notificationId);
00510 
00522 void CMPCALL PictureRemoved(HANDLE hCMP, CMPRESULT rc, CMP_UNIQUE_ID pictureId);
00523 
00534 void CMPCALL SessionStateChanged(HANDLE hCMP, CMP_SESSION_STATE state);
00535 
00546 void CMPCALL ChannelStateChanged(HANDLE hCMP, CMP_CHANNEL_STATE state);
00547 
00548 
00571 void CMPCALL ViewportChanged(HANDLE hCMP, CMPRESULT rc, INT16 flags, INT16 zoomFactor, 
00572                              INT32 x0Server, INT32 y0Server, INT32 x1Server, INT32 y1Server,
00573                              INT32 x0Client, INT32 y0Client, INT32 x1Client, INT32 y1Client);
00574 
00596 void CMPCALL PictureCaptured(HANDLE hCMP, CMPRESULT result, CMP_UNIQUE_LONG_ID uniqueId, UTF8_STRING pictureMetadata, UTF8_STRING filename, UTF8_STRING thumbnail, INT32 pictureSize, const CMP_CAPTURE_PICTURE_OPTIONS *options);
00597 
00618 void CMPCALL VideoCaptured(HANDLE hCMP, CMPRESULT result, CMP_UNIQUE_LONG_ID uniqueId, UTF8_STRING videoMetadata, UTF8_STRING filename, INT32 videoSize, const CMP_CAPTURE_VIDEO_OPTIONS *options);
00619 
00640 void CMPCALL AudioCaptured(HANDLE hCMP, CMPRESULT result, CMP_UNIQUE_LONG_ID uniqueId, UTF8_STRING audioMetadata, UTF8_STRING filename, INT32 audioSize, const CMP_CAPTURE_AUDIO_OPTIONS *options);
00641 
00654 void CMPCALL SupportedOrientationsChanged(HANDLE hCMP, CMPRESULT result, CMP_SUPPORTED_ORIENTATIONS supportedOrientations);
00655 
00668 void CMPCALL CaptureMediaRemoved(HANDLE hCMP, CMPRESULT result, CMP_UNIQUE_LONG_ID captureId);
00669 
00679 void CMPCALL AppForeground(HANDLE hCMP);
00680 
00690 void CMPCALL AppBackground(HANDLE hCMP);
00691 
00702 void CMPCALL ForegroundAppChanged(HANDLE hCMP, DWORD foregroundProcessId);
00703 
00704 
00705 #endif //CMPCOM
00706 
00707 // conversion routines
00708 CMPAPIENTRY UTF16ToUTF8(LPCWSTR wStr, INT32 wStrLen, UTF8_STRING string, UINT32 bufferSize, UINT32 *stringSize);
00709 CMPAPIENTRY UTF8ToBSTR(UTF8_STRING string, INT32 length, BSTR *bStr);
00710 
00711 // multistring
00712 CMPAPIENTRY GetUTF8MultiStringLength(UTF8_STRING str, UINT32* length);
00713 CMPAPIENTRY GetUTF16MultiStringLength(LPCWSTR str, UINT32* length);
00714 CMPAPIENTRY GetUTF16ToUTF8MultiStringLength(LPCWSTR str, UINT32* length);
00715 CMPAPIENTRY UTF8MultiStringToBSTR(UTF8_STRING utf8MultiString, BSTR *bStr);
00716 CMPAPIENTRY UTF16ToUTF8MultiString(LPCWSTR wStr, UTF8_STRING multiString, UINT32 stringBufferSize, UINT32* stringSize);
00717 CMPAPIENTRY BSTRSafearrayToBSTR(SAFEARRAY *psa, BSTR *bstr);
00718 
00719 // length
00720 CMPAPIENTRY UTF8ToUTF16Length(UTF8_STRING utf8String, UINT32* length);
00721 CMPAPIENTRY UTF16ToUTF8Length(LPCWSTR wString, UINT32* length);
00722 
00723 // unique id generation (cmp v2)
00724 CMPAPIENTRY GetUniqueId(CMP_UNIQUE_ID *uniqueId);
00725 CMPAPIENTRY GetUniqueLongId(CMP_UNIQUE_LONG_ID *uniqueId);
00726 
00727 #ifdef __cplusplus
00728 // end EXTERN "C"
00729 }
00730 #endif
00731 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Events Defines