📄 gpsapi.cpp
字号:
// Gpsapi.cpp : 定义 DLL 应用程序的入口点。
//
#include "stdafx.h"
#include "Gpsapi.h"
#include "GpsControl.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
GPSAPI_API HANDLE GPSOpenDevice(HANDLE hNewLocationData,HANDLE hDeviceStateChange, const WCHAR* szDeviceName,DWORD dwFlags)
{
CGpsControl *pGpsContor = new CGpsControl();
pGpsContor->Config(5, 9600, 8);
pGpsContor->SetNewHandle(hNewLocationData);
if(pGpsContor->Create())
{
return (HANDLE)pGpsContor;
}
else
{
delete pGpsContor;
pGpsContor = NULL;
return (HANDLE)pGpsContor;
}
}
GPSAPI_API DWORD GPSCloseDevice(HANDLE hGPSDevice )
{
if (hGPSDevice == NULL)
{
return ERROR_INVALID_HANDLE;
}
CGpsControl *pGpsControl = (CGpsControl*)hGPSDevice;
if (!pGpsControl)
{
return ERROR_INVALID_HANDLE;
}
pGpsControl->Destroy();
return ERROR_SUCCESS;
}
GPSAPI_API BOOL GPSResetDevice(HANDLE hGPSDevice)
{
if (hGPSDevice == NULL)
{
return FALSE;
}
CGpsControl *pGpsControl = (CGpsControl*)hGPSDevice;
if (!pGpsControl)
{
return FALSE;
}
pGpsControl->PowerReset();
return TRUE;
}
GPSAPI_API DWORD GPSGetPosition(HANDLE hGPSDevice, GPS_POSITION *pGPSPosition, DWORD dwMaximumAge, DWORD dwFlags)
{
if (hGPSDevice == NULL)
{
return ERROR_INVALID_HANDLE;
}
if (pGPSPosition == NULL)
{
return ERROR_ACCESS_DENIED;
}
CGpsControl *pGpsContor = (CGpsControl*)hGPSDevice;
if (!pGpsContor)
{
return ERROR_INVALID_HANDLE;
}
GPS_POSITION *pdata = pGpsContor->GetAllData();
memcpy(pGPSPosition, pdata, sizeof(GPS_POSITION));
return ERROR_SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -