1,486
社区成员
发帖
与我相关
我的任务
分享
//C++代码
//头文件定义
SSC_RestoreVal(const wchar_t* tag, unsigned char** value, unsigned long* valSize);
//函数应用
void RestoreValue()
{
BYTE* valueBuffer = NULL;
DWORD valueBufferSize = 0;
string val;
wstring tag;
wcout << L"Enter value tag name to restore: ";
getline(wcin, tag);
//restore saved value
SscRc rc = SSC_RestoreVal(tag.c_str(), &valueBuffer, &valueBufferSize);
if(S_SSCRC_OK(rc))
{
val.assign((const char*)valueBuffer, valueBufferSize);
wcout << tag <<L" value is: ";
cout << val << endl;
}
else
{
wcout << L"Unable to get requested value: " << rc << endl;
}
//free the buffer
SSC_SecureFreeValBuffer(valueBuffer, valueBufferSize);
valueBuffer = NULL;
return;
}
//VB代码
//函数定义
Public Declare Function SSC_RestoreVal Lib "SscApi.dll" (ByVal tag As String, ByVal Value As String, ByVal valSize As Long)
//应用
Private Sub A_RestoreV_Click()
Dim valueBuffer As String
Dim valueBufferSize As Long
Dim tag As String
Dim val As String
Dim rc As Enum_SscRc
On Error GoTo RestoreError
valueBufferSize = 0
valueBuffer = ""
tag = "abra"
rc = SSC_RestoreVal(tag, VarPtr(valueBuffer), VarPtr(valueBufferSize))
If (S_SSCRC_OK(rc)) Then
' val.assign valueBuffer, valueBufferSize
'CopyMemory val, valueBuffer, valueBufferSize
MsgBox tag & " Value is:" & valueBuffer
Else
MsgBox "Unable to get requested value: "
End If
txtReStoreValue.Text = "valueBuffer:" & CStr(valueBuffer) & " valueBufferSize:" & CStr(valueBufferSize) & " val:" & val
' SSC_SecureFreeValBuffer valueBuffer , valueBufferSize
RestoreError:
MsgBox Err.Description
End Sub
Public Declare Function SSC_RestoreVal Lib "SscApi.dll" (ByVal tag As Long, ByRef Value As Long, ByRef valSize As Long)
Declare Function MultiByteToWideChar Lib "kernel32.dll" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Sub A_RestoreV_Click()
Dim ValueBuffer as String
Dim pvalueBuffer As Long
Dim valueBufferSize As Long,ct as long
Dim tag As String
Dim val As String
Dim rc As Enum_SscRc
On Error GoTo RestoreError
valueBufferSize = 0
valueBuffer = ""
tag = "abra"
rc = SSC_RestoreVal(StrPtr(tag), pvalueBuffer, valueBufferSize)
ct=MultiByteToWideChar(0,1,pvalueBuffer,valueBufferSize,StrPtr(valueBuffer),0)
valueBuffer=Space(ct)
MultiByteToWideChar(0,1,pvalueBuffer,valueBufferSize,StrPtr(valueBuffer),ct)
If (S_SSCRC_OK(rc)) Then
' val.assign valueBuffer, valueBufferSize
'CopyMemory val, valueBuffer, valueBufferSize
MsgBox tag & " Value is:" & valueBuffer
Else
MsgBox "Unable to get requested value: "
End If
txtReStoreValue.Text = "valueBuffer:" & valueBuffer & " valueBufferSize:" & Str(valueBufferSize) & " val:" & val
' SSC_SecureFreeValBuffer pvalueBuffer , valueBufferSize
RestoreError:
MsgBox Err.Description
End Sub
SscRc SSC_RestoreVal(const wchar_t* tag, unsigned char** value, unsigned long* valSize);
SscRc SSC_StoreFile(const wchar_t* tag, const wchar_t* rpath);
void SSC_SecureFreeValBuffer(unsigned char* ptrToBuffer, unsigned long bufferSize);
val.assign valueBuffer, valueBufferSize