diff --git a/CMakeLists.txt b/CMakeLists.txt index b40e367c6..314bf6964 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,6 +79,7 @@ if(MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /O2 /Ob2") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_X86_") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_UNICODE") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWINPR_EXPORTS") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFREERDP_EXPORTS") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWIN32_LEAN_AND_MEAN") diff --git a/client/Windows/wfreerdp.c b/client/Windows/wfreerdp.c index 7c1d79144..4b1b97118 100644 --- a/client/Windows/wfreerdp.c +++ b/client/Windows/wfreerdp.c @@ -19,7 +19,7 @@ * limitations under the License. */ -#include +#include #include #include diff --git a/client/Windows/wfreerdp.h b/client/Windows/wfreerdp.h index 099bd6cdc..062618019 100644 --- a/client/Windows/wfreerdp.h +++ b/client/Windows/wfreerdp.h @@ -22,7 +22,7 @@ #ifndef __WFREERDP_H #define __WFREERDP_H -#include +#include #include #include diff --git a/include/freerdp/crypto/crypto.h b/include/freerdp/crypto/crypto.h index d3c3d74ae..e3baa6079 100644 --- a/include/freerdp/crypto/crypto.h +++ b/include/freerdp/crypto/crypto.h @@ -21,7 +21,7 @@ #define FREERDP_CRYPTO_H /* OpenSSL includes windows.h */ -#include +#include #include #include diff --git a/include/freerdp/sspi/sspi.h b/include/freerdp/sspi/sspi.h index 958a1b16e..376d08f16 100644 --- a/include/freerdp/sspi/sspi.h +++ b/include/freerdp/sspi/sspi.h @@ -21,10 +21,10 @@ #define FREERDP_SSPI_H #include +#include #include #include -#include #ifdef _WIN32 diff --git a/include/winpr/ndr.h b/include/winpr/ndr.h index ed2446500..ed288e3a2 100644 --- a/include/winpr/ndr.h +++ b/include/winpr/ndr.h @@ -20,10 +20,8 @@ #ifndef WINPR_RPC_NDR_H #define WINPR_RPC_NDR_H -#include "config.h" - #include -#include +#include #define __RPC_WIN32__ 1 #define TARGET_IS_NT50_OR_LATER 1 diff --git a/include/winpr/rpc.h b/include/winpr/rpc.h index 5feadbecd..8be422f51 100644 --- a/include/winpr/rpc.h +++ b/include/winpr/rpc.h @@ -20,11 +20,10 @@ #ifndef WINPR_RPC_H #define WINPR_RPC_H -#include -#include +#include +#include #define RPC_VAR_ENTRY __cdecl -#define WINPR_API FREERDP_API typedef long RPC_STATUS; diff --git a/include/freerdp/utils/windows.h b/include/winpr/windows.h similarity index 83% rename from include/freerdp/utils/windows.h rename to include/winpr/windows.h index ecf95f66f..8daed265b 100644 --- a/include/freerdp/utils/windows.h +++ b/include/winpr/windows.h @@ -1,6 +1,6 @@ /** - * FreeRDP: A Remote Desktop Protocol Client - * Windows Header Utils + * WinPR: Windows Portable Runtime + * Windows Header Include Wrapper * * Copyright 2012 Marc-Andre Moreau * @@ -17,8 +17,8 @@ * limitations under the License. */ -#ifndef FREERDP_WINDOWS_UTILS_H -#define FREERDP_WINDOWS_UTILS_H +#ifndef WINPR_WINDOWS_H +#define WINPR_WINDOWS_H /* Windows header include order is important, use this instead of including windows.h directly */ @@ -34,4 +34,4 @@ #endif -#endif /* FREERDP_WINDOWS_UTILS_H */ +#endif /* WINPR_WINDOWS_H */ diff --git a/include/winpr/winpr.h b/include/winpr/winpr.h new file mode 100644 index 000000000..479b19b6e --- /dev/null +++ b/include/winpr/winpr.h @@ -0,0 +1,52 @@ +/** + * WinPR: Windows Portable Runtime + * + * Copyright 2012 Marc-Andre Moreau + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WINPR_H +#define WINPR_H + +#include "config.h" + +#if defined _WIN32 || defined __CYGWIN__ + #ifdef WINPR_EXPORTS + #ifdef __GNUC__ + #define WINPR_API __attribute__((dllexport)) + #else + #define WINPR_API __declspec(dllexport) + #endif + #else + #ifdef __GNUC__ + #define WINPR_API __attribute__((dllimport)) + #else + #define WINPR_API __declspec(dllimport) + #endif + #endif +#else + #if __GNUC__ >= 4 + #define WINPR_API __attribute__ ((visibility("default"))) + #else + #define WINPR_API + #endif +#endif + +#ifdef _WIN32 +#define INLINE __inline +#else +#define INLINE inline +#endif + +#endif /* WINPR_H */ diff --git a/include/freerdp/wtypes.h b/include/winpr/wtypes.h similarity index 95% rename from include/freerdp/wtypes.h rename to include/winpr/wtypes.h index f544a2438..c01e2d4df 100644 --- a/include/freerdp/wtypes.h +++ b/include/winpr/wtypes.h @@ -1,5 +1,5 @@ /** - * FreeRDP: A Remote Desktop Protocol Client + * WinPR: Windows Portable Runtime * Windows Data Types * * Copyright 2012 Marc-Andre Moreau @@ -17,15 +17,14 @@ * limitations under the License. */ -#ifndef FREERDP_WINDOWS_TYPES_H -#define FREERDP_WINDOWS_TYPES_H +#ifndef WINPR_WTYPES_H +#define WINPR_WTYPES_H /* MSDN: Windows Data Types - http://msdn.microsoft.com/en-us/library/aa383751/ */ /* [MS-DTYP]: Windows Data Types - http://msdn.microsoft.com/en-us/library/cc230273/ */ #include -#include -#include +#include #ifndef _WIN32 @@ -182,4 +181,4 @@ typedef PCONTEXT_HANDLE* PPCONTEXT_HANDLE; typedef unsigned long error_status_t; -#endif /* FREERDP_WINDOWS_TYPES_H */ +#endif /* WINPR_WTYPES_H */ diff --git a/libfreerdp-core/extension.h b/libfreerdp-core/extension.h index 27aafdfcc..25273023f 100644 --- a/libfreerdp-core/extension.h +++ b/libfreerdp-core/extension.h @@ -21,10 +21,11 @@ #ifndef __EXTENSION_H #define __EXTENSION_H +#include + #include #include #include -#include #define FREERDP_EXT_MAX_COUNT 16 diff --git a/libfreerdp-core/rpc.c b/libfreerdp-core/rpc.c index 760b4db4e..a8d0c98b0 100644 --- a/libfreerdp-core/rpc.c +++ b/libfreerdp-core/rpc.c @@ -756,7 +756,7 @@ int rpc_read(rdpRpc* rpc, uint8* data, int length) if (rpc->read_buffer_len > 0) { - if (rpc->read_buffer_len > length) + if (rpc->read_buffer_len > (uint32) length) { printf("rpc_read error: receiving buffer is not large enough\n"); return -1; diff --git a/libfreerdp-core/tcp.h b/libfreerdp-core/tcp.h index 1db16959a..45c32a83c 100644 --- a/libfreerdp-core/tcp.h +++ b/libfreerdp-core/tcp.h @@ -21,7 +21,7 @@ #ifndef __TCP_H #define __TCP_H -#include +#include #include #include diff --git a/libfreerdp-core/tsg.h b/libfreerdp-core/tsg.h index 9c270ae7a..ad0adc1ba 100644 --- a/libfreerdp-core/tsg.h +++ b/libfreerdp-core/tsg.h @@ -27,10 +27,10 @@ typedef struct rdp_tsg rdpTsg; #include "transport.h" #include +#include #include #include -#include #include #include #include diff --git a/libfreerdp-rail/window.c b/libfreerdp-rail/window.c index c8f25e536..7b39fa13b 100644 --- a/libfreerdp-rail/window.c +++ b/libfreerdp-rail/window.c @@ -17,11 +17,11 @@ * limitations under the License. */ +#include #include #include #include #include -#include #include "librail.h" diff --git a/libfreerdp-utils/file.c b/libfreerdp-utils/file.c index 5a597f14c..f1985da0e 100644 --- a/libfreerdp-utils/file.c +++ b/libfreerdp-utils/file.c @@ -34,8 +34,8 @@ #define getcwd _getcwd #endif +#include #include -#include #ifndef _WIN32 #define PATH_SEPARATOR_STR "/" diff --git a/libfreerdp-utils/load_plugin.c b/libfreerdp-utils/load_plugin.c index b9bae3b03..6e64c45b3 100644 --- a/libfreerdp-utils/load_plugin.c +++ b/libfreerdp-utils/load_plugin.c @@ -22,11 +22,11 @@ #include #include #include +#include #include #include #include #include -#include #ifdef _WIN32 diff --git a/libfreerdp-utils/mutex.c b/libfreerdp-utils/mutex.c index 16003579d..a5e07ca8e 100644 --- a/libfreerdp-utils/mutex.c +++ b/libfreerdp-utils/mutex.c @@ -17,9 +17,9 @@ * limitations under the License. */ +#include #include #include -#include #ifdef _WIN32 #define freerdp_mutex_t HANDLE diff --git a/libfreerdp-utils/semaphore.c b/libfreerdp-utils/semaphore.c index 7e08a75d7..9cd87c422 100644 --- a/libfreerdp-utils/semaphore.c +++ b/libfreerdp-utils/semaphore.c @@ -17,9 +17,9 @@ * limitations under the License. */ +#include #include #include -#include #if defined __APPLE__ diff --git a/libfreerdp-utils/sleep.c b/libfreerdp-utils/sleep.c index 9752e0d2a..830cad615 100644 --- a/libfreerdp-utils/sleep.c +++ b/libfreerdp-utils/sleep.c @@ -17,8 +17,8 @@ * limitations under the License. */ +#include #include -#include #include diff --git a/libfreerdp-utils/tcp.c b/libfreerdp-utils/tcp.c index 695855d15..81ece04d7 100644 --- a/libfreerdp-utils/tcp.c +++ b/libfreerdp-utils/tcp.c @@ -45,7 +45,7 @@ #else /* ifdef _WIN32 */ -#include +#include #define SHUT_RDWR SD_BOTH #define close(_fd) closesocket(_fd) #endif diff --git a/libfreerdp-utils/thread.c b/libfreerdp-utils/thread.c index 2251cdd0d..d25125917 100644 --- a/libfreerdp-utils/thread.c +++ b/libfreerdp-utils/thread.c @@ -22,7 +22,7 @@ #include #include -#include +#include #ifdef _WIN32 #ifdef _MSC_VER diff --git a/libfreerdp-utils/time.c b/libfreerdp-utils/time.c index 2e50796d2..fbcf46971 100644 --- a/libfreerdp-utils/time.c +++ b/libfreerdp-utils/time.c @@ -17,8 +17,8 @@ * limitations under the License. */ +#include #include -#include uint64 freerdp_windows_gmtime() { diff --git a/libfreerdp-utils/unicode.c b/libfreerdp-utils/unicode.c index 960d2360d..e06ccec2a 100644 --- a/libfreerdp-utils/unicode.c +++ b/libfreerdp-utils/unicode.c @@ -114,7 +114,7 @@ char* freerdp_uniconv_out(UNICONV* uniconv, const char *str, size_t* pout_len) ibl = strlen(str); obl = 2 * ibl; - pin = str; + pin = (char*) str; pout0 = xmalloc(obl + 2); pout = pout0; diff --git a/libfreerdp-utils/wait_obj.c b/libfreerdp-utils/wait_obj.c index 65f6fb880..a9f2e8ef2 100644 --- a/libfreerdp-utils/wait_obj.c +++ b/libfreerdp-utils/wait_obj.c @@ -18,12 +18,13 @@ */ #include "config.h" + #include #include #include +#include #include #include -#include #ifndef _WIN32 #include diff --git a/libwinpr-rpc/ndr.c b/libwinpr-rpc/ndr.c index b3c8f85b4..6c29b7ef8 100644 --- a/libwinpr-rpc/ndr.c +++ b/libwinpr-rpc/ndr.c @@ -17,6 +17,8 @@ * limitations under the License. */ +#include + #include /**