bool AddNetShare(const wchar_t* path, const wchar_t* name)
{
auto pathStr = StrDup(path);
auto nameStr = StrDup(name);
DWORD level = 2;
SHARE_INFO_2 si;
DWORD parmErr = 0;
si.shi2_netname = nameStr;
si.shi2_type = STYPE_DISKTREE;
si.shi2_remark = NULL;
si.shi2_path = pathStr;
si.shi2_permissions = ACCESS_ALL;
si.shi2_passwd = NULL;
si.shi2_max_uses = -1;
si.shi2_current_uses = 0;
auto res = NetShareAdd(NULL, level, (LPBYTE)&si, &parmErr);
LocalFree(pathStr);
LocalFree(nameStr);
return (res == NERR_Success);
}
bool DelNetShare(const wchar_t * name)
{
auto nameStr = StrDup(name);
auto res = NetShareDel(NULL, nameStr, 0);
LocalFree(nameStr);
return (res == NERR_Success);
}