Article ID: 201426
Article Last Modified on 2/12/2007
hr = StgOpenStorage(wcsName, NULL,
STGM_SHARE_EXCLUSIVE | STGM_READWRITE,
NULL, 0, &lpStg);
a STG_E_ACCESSDENIED error is generated. This does not work, however, on Novell Netware Server when you use CSNW to connect to it.
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#define BUFFER_SIZE 256
void main(void)
{
char szFileName[BUFFER_SIZE]="";
OLECHAR wcsName[BUFFER_SIZE]=L"";
LPSTORAGE lpStg=NULL;
HRESULT hr=0;
printf("Enter File name:");
scanf("%s",szFileName);
mbstowcs(wcsName, szFileName, strlen(szFileName) + 1);
hr = StgOpenStorage(wcsName, NULL,
STGM_SHARE_EXCLUSIVE | STGM_READWRITE,
NULL, 0, &lpStg);
printf(TEXT("StgOpenStorage 0x%0x\n"), hr);
if (hr==S_OK){
printf("S_OK first\n");
getch();
lpStg->Release();
exit(0);
}
if (hr==STG_E_ACCESSDENIED){
printf("STG_E_ACCESSDENIED\n");
hr = StgOpenStorage(wcsName, NULL,
STGM_READ | STGM_SHARE_DENY_WRITE,
NULL, 0, &lpStg);
printf(TEXT("StgOpenStorage 0x%0x\n"), hr);
if (hr==S_OK){
printf("S_OK second\n");
getch();
lpStg->Release();
}
}
}Keywords: kb3rdparty kbnetwork kbprb KB201426