258 lines
7.5 KiB
C

//-----------------------------------------------------------------------------
// (c) 2014 by Basler Vision Technologies
// Section: Vision Components
// Project: GenICam
// Author: Maxime Dupont
// $Header$
// License: This file is published under the license of the EMVA GenICam Standard Group.
// A text file describing the legal terms is included in your installation as 'GenICam_license.pdf'.
// If for some reason you are missing this file please contact the EMVA or visit the website
// (http://www.genicam.org) for a full copy.
//
// THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD GROUP
// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//-----------------------------------------------------------------------------
/*!
\file
\brief GenICam RTSS utilities
\ingroup Base_PublicUtilities
*/
#ifndef GENAPI_GENAPIRTSSUTILITIES_DEF_H_
#define GENAPI_GENAPIRTSSUTILITIES_DEF_H_
#include "crtdefs.h"
#include <stdio.h>
#include <errno.h>
#include <io.h>
#include "windows.h"
#if defined(UNDER_RTSS) && defined(GENICAM_BUILD)
#if defined(htons)
#undef htons
#endif // defined(htons)
#if defined(ntohs)
#undef ntohs
#endif // defined(ntohs)
#if defined(htonl)
#undef htonl
#endif // defined(htonl)
#if defined(ntohl)
#undef ntohl
#endif // defined(ntohl)
#define HTONS(n) (unsigned short)(((((unsigned short)(n) & 0xFF)) << 8) | (((unsigned short)(n) & 0xFF00) >> 8))
#define NTOHS(n) (unsigned short)(((((unsigned short)(n) & 0xFF)) << 8) | (((unsigned short)(n) & 0xFF00) >> 8))
#define HTONL(n) (unsigned long)(((((unsigned long)(n) & 0xFF)) << 24) | \
((((unsigned long)(n) & 0xFF00)) << 8) | \
((((unsigned long)(n) & 0xFF0000)) >> 8) | \
((((unsigned long)(n) & 0xFF000000)) >> 24))
#define NTOHL(n) (unsigned long)(((((unsigned long)(n) & 0xFF)) << 24) | \
((((unsigned long)(n) & 0xFF00)) << 8) | \
((((unsigned long)(n) & 0xFF0000)) >> 8) | \
((((unsigned long)(n) & 0xFF000000)) >> 24))
#define htons(n) HTONS(n)
#define ntohs(n) NTOHS(n)
#define htonl(n) HTONL(n)
#define ntohl(n) NTOHL(n)
#endif
#if defined(UNDER_RTSS)
#ifdef __cplusplus
extern "C" {
#endif
WINBASEAPI __out HANDLE WINAPI FindFirstFileExW(
__in LPCWSTR lpFileName,
__in FINDEX_INFO_LEVELS fInfoLevelId,
__out LPVOID lpFindFileData,
__in FINDEX_SEARCH_OPS fSearchOp,
__reserved LPVOID lpSearchFilter,
__in DWORD dwAdditionalFlags
);
WINBASEAPI __out HANDLE WINAPI FindFirstFileExA(
__in LPCSTR lpFileName,
__in FINDEX_INFO_LEVELS fInfoLevelId,
__out LPVOID lpFindFileData,
__in FINDEX_SEARCH_OPS fSearchOp,
__reserved LPVOID lpSearchFilter,
__in DWORD dwAdditionalFlags
);
WINBASEAPI BOOL WINAPI FindNextFileW(
__in HANDLE hFindFile,
__out LPWIN32_FIND_DATAW lpFindFileData
);
WINBASEAPI BOOL WINAPI FindNextFileA(
__in HANDLE hFindFile,
__out LPWIN32_FIND_DATAA lpFindFileData
);
WINBASEAPI BOOL WINAPI FindClose(
__inout HANDLE hFindHandle
);
WINBASEAPI BOOL WINAPI SystemTimeToTzSpecificLocalTime(
__in_opt CONST TIME_ZONE_INFORMATION * lpTimeZoneInformation,
__in CONST SYSTEMTIME * lpUniversalTime,
__out LPSYSTEMTIME lpLocalTime
);
WINBASEAPI UINT WINAPI GetDriveTypeW(
__in_opt LPCWSTR lpRootPathName
);
WINBASEAPI UINT WINAPI GetDriveTypeA(
__in_opt LPCSTR lpRootPathName
);
WINBASEAPI BOOL WINAPI GetFileInformationByHandle(
__in HANDLE hFile,
__out LPBY_HANDLE_FILE_INFORMATION lpFileInformation
);
WINBASEAPI BOOL WINAPI PeekNamedPipe(
__in HANDLE hNamedPipe,
__out_bcount_part_opt(nBufferSize, *lpBytesRead) LPVOID lpBuffer,
__in DWORD nBufferSize,
__out_opt LPDWORD lpBytesRead,
__out_opt LPDWORD lpTotalBytesAvail,
__out_opt LPDWORD lpBytesLeftThisMessage
);
WINBASEAPI DWORD WINAPI GetFullPathNameW(
__in LPCWSTR lpFileName,
__in DWORD nBufferLength,
__out_ecount_part_opt(nBufferLength, return +1) LPWSTR lpBuffer,
__deref_opt_out LPWSTR * lpFilePart
);
WINBASEAPI BOOL WINAPI SetCurrentDirectoryW(
__in LPCWSTR lpPathName
);
WINBASEAPI DWORD WINAPI GetCurrentDirectoryW(
__in DWORD nBufferLength,
__out_ecount_part_opt(nBufferLength, return +1) LPWSTR lpBuffer
);
WINBASEAPI DWORD WINAPI GetFullPathNameA(
__in LPCSTR lpFileName,
__in DWORD nBufferLength,
__out_ecount_part_opt(nBufferLength, return +1) LPSTR lpBuffer,
__deref_opt_out LPSTR * lpFilePart
);
WINBASEAPI UINT WINAPI SetErrorMode(
__in UINT uMode
);
WINBASEAPI LANGID WINAPI GetUserDefaultLangID(void);
WINBASEAPI DWORD WINAPI GetFileAttributesW(
__in LPCWSTR lpFileName
);
WINBASEAPI DWORD WINAPI GetFileAttributesA(
__in LPCSTR lpFileName
);
WINBASEAPI BOOL WINAPI GetFileAttributesExW(
__in LPCWSTR lpFileName,
__in GET_FILEEX_INFO_LEVELS fInfoLevelId,
__out LPVOID lpFileInformation
);
WINBASEAPI BOOL WINAPI GetModuleHandleExA(
__in DWORD dwFlags,
__in_opt LPCSTR lpModuleName,
__out HMODULE * phModule
);
WINBASEAPI HLOCAL WINAPI LocalFree(
__deref HLOCAL hMem
);
WINBASEAPI BOOL WINAPI CopyFileA(
__in LPCSTR lpExistingFileName,
__in LPCSTR lpNewFileName,
__in BOOL bFailIfExists
);
// ************************************************************************
// ********** GenAPITest section **********
// ************************************************************************
WINBASEAPI UINT WINAPI GetSystemDirectoryA(
__out_ecount_part_opt(uSize, return + 1) LPSTR lpBuffer,
__in UINT uSize
);
WINBASEAPI DWORD WINAPI GetTempPathA(
__in DWORD nBufferLength,
__out_ecount_part_opt(nBufferLength, return + 1) LPSTR lpBuffer
);
WINBASEAPI BOOL WINAPI GetThreadTimes(
__in HANDLE hThread,
__out LPFILETIME lpCreationTime,
__out LPFILETIME lpExitTime,
__out LPFILETIME lpKernelTime,
__out LPFILETIME lpUserTime
);
WINBASEAPI BOOL WINAPI SetConsoleOutputCP(
__in UINT wCodePageID
);
WINBASEAPI BOOL WINAPI SetEnvironmentVariableW(
__in LPCWSTR lpName,
__in_opt LPCWSTR lpValue
);
WINBASEAPI __success(return < nSize) __success(return != 0) DWORD WINAPI GetEnvironmentVariableA(
__in_opt LPCSTR lpName,
__out_ecount_part_opt(nSize, return + 1) LPSTR lpBuffer,
__in DWORD nSize
);
WINBASEAPI BOOL WINAPI CopyFileW(
__in LPCWSTR lpExistingFileName,
__in LPCWSTR lpNewFileName,
__in BOOL bFailIfExists
);
#ifdef __cplusplus
}
#endif
#endif // defined(UNDER_RTSS)
#endif // GENAPI_GENAPIRTSSUTILITIES_DEF_H_