Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
77
Src/Plugins/Library/ml_webdev/forceUrl.cpp
Normal file
77
Src/Plugins/Library/ml_webdev/forceUrl.cpp
Normal file
|
@ -0,0 +1,77 @@
|
|||
#include "main.h"
|
||||
#include "./forceUrl.h"
|
||||
|
||||
typedef struct __FORCEURLDATA
|
||||
{
|
||||
UINT serviceId;
|
||||
LPWSTR url;
|
||||
} FORCEURLDATA;
|
||||
|
||||
#define FORCEURLPROP L"MLWEBDEV_FORCEURL"
|
||||
|
||||
void ForceUrl_Remove()
|
||||
{
|
||||
HWND hLibrary = Plugin_GetLibrary();
|
||||
if (NULL == hLibrary) return;
|
||||
|
||||
FORCEURLDATA *data = (FORCEURLDATA*)GetProp(hLibrary, FORCEURLPROP);
|
||||
RemoveProp(hLibrary, FORCEURLPROP);
|
||||
if (NULL != data)
|
||||
{
|
||||
Plugin_FreeString(data->url);
|
||||
free(data);
|
||||
}
|
||||
}
|
||||
|
||||
HRESULT ForceUrl_Set(UINT serviceId, LPCWSTR pszUrl)
|
||||
{
|
||||
if (NULL == pszUrl) return E_INVALIDARG;
|
||||
|
||||
HWND hLibrary = Plugin_GetLibrary();
|
||||
if (NULL == hLibrary) return E_FAIL;
|
||||
|
||||
FORCEURLDATA *data = (FORCEURLDATA*)GetProp(hLibrary, FORCEURLPROP);
|
||||
|
||||
if (NULL != data)
|
||||
{
|
||||
Plugin_FreeString(data->url);
|
||||
if (data->serviceId != serviceId)
|
||||
{
|
||||
free(data);
|
||||
data = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == data)
|
||||
{
|
||||
data = (FORCEURLDATA*)malloc(sizeof(FORCEURLDATA));
|
||||
if (NULL == data) return E_OUTOFMEMORY;
|
||||
data->serviceId = serviceId;
|
||||
}
|
||||
|
||||
data->url = Plugin_CopyString(pszUrl);
|
||||
if (NULL == data->url || FALSE == SetProp(hLibrary, FORCEURLPROP, data))
|
||||
{
|
||||
ForceUrl_Remove();
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT ForceUrl_Get(UINT serviceId, const wchar_t **ppszUrl)
|
||||
{
|
||||
if (NULL == ppszUrl) return E_POINTER;
|
||||
*ppszUrl = NULL;
|
||||
|
||||
HWND hLibrary = Plugin_GetLibrary();
|
||||
if (NULL == hLibrary) return E_FAIL;
|
||||
|
||||
FORCEURLDATA *data = (FORCEURLDATA*)GetProp(hLibrary, FORCEURLPROP);
|
||||
|
||||
if (NULL == data || data->serviceId != serviceId)
|
||||
return E_NOINTERFACE;
|
||||
|
||||
*ppszUrl = data->url;
|
||||
return S_OK;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue