#pragma once
#ifndef _domain_time_sdk_api_test_
#define _domain_time_sdk_api_test_


#define _WINSOCKAPI_            // prevent inclusion of winsock.h in windows.h
#define VC_EXTRALEAN            // remove all MFC stuff
#define WIN32_LEAN_AND_MEAN     // remove unused headers
#define WIN32_EXTRA_LEAN        // remove more unused headers
#define NOMCX                   // remove MCX defines
#define NOIME                   // remove IME defines
#define NOCOMM                  // remove serial communications
#define NOKANJI                 // remove Japanese characters
#define NORPC                   // remove RPC defines
#define NOPROXYSTUB             // remove more RPC defines
#define NOIMAGE                 // remove image functions
#define NOTAPE                  // remove tape stuff
#define NOSOUND                 // remove sound functions
#define ANSI_ONLY               // for this program's purpose, unicode is not desired; we use A or W versions

#define WINVER          0x0502  // Targeting XP or above
#define _WIN32_WINNT    0x0502  // Targeting XP or above

#include <windows.h>            // generic Windows header
#include <winver.h>             // for extracting version information from files the old-fashioned way
#include <stdio.h>              // for stdio
#include <conio.h>              // for _getch()
#include <winsock2.h>           // for sockaddr_in
#include <ws2ipdef.h>           // for sockaddr_in6

#include "../dthres.h"          // the SDK DLL defines and declarations

#ifndef _LANGANDCODEPAGE_
#define _LANGANDCODEPAGE_       // structure used by VerQueryValue() -- only needed if you are getting 
typedef struct LANGANDCODEPAGE  // the SDK DLL version using backward-compatible methods.
{
  WORD wLanguage;
  WORD wCodePage;
} LANGANDCP, *PLANGANDCP, *LPLANGANDCP;
#endif // #ifndef _LANGANDCODEPAGE_

//
// SDK events that live in the global namespace as long as Domain Time is running. These names and
// meanings are documented in SDK.DOC.
//

#define SYNC_STATUS_PTPV2_IS_ENABLED_NAME       "Global\\domtime-sync-status-ptpv2-enabled"         // signalled if PTP is enabled
#define SYNC_STATUS_PTPV2_IS_SLAVE_NAME         "Global\\domtime-sync-status-ptpv2-slave"           // signalled if PTP slave
#define SYNC_STATUS_PTPV2_IS_MASTER_NAME        "Global\\domtime-sync-status-ptpv2-master"          // signalled if PTP master
#define SYNC_STATUS_PTPV2_STATUS_CHANGE_NAME    "Global\\domtime-sync-status-ptpv2-status-change"   // signalled when PTP status changes
#define SYNC_STATUS_PTPV2_OFFSET_CHANGE_NAME    "Global\\domtime-sync-status-ptpv2-offset-change"   // deprecated; DO NOT USE

#ifdef _WIN64
    //
    // use the 64-bit SDK DLL if build is x64
    //
    #define SDKDLL_NAME "dthres64.dll"
#else
    //
    // use the 32-bit SDK DLL if build is x86
    //
    
    #define SDKDLL_NAME "dthres32.dll"       
#endif


#endif // _domain_time_sdk_api_test_
