XP에서 StgOpenStorage API를 사용하여 OLE Compound Document를 읽었지만 Windows에 필요한 플래그를 올바르게 찾을 수 없습니다. 다른 프로세스에 대한 액세스를 차단하지 않고 파일 ...
지금은 STGM_READ | STGM_EXCLUSIVE
을 사용하고 있지만 동시에 다른 응용 프로그램에서 파일을 열려고 시도하는 경우 분명히 거부 된 액세스에 대해 불평합니다. STGM_READ | STGM_SHARE_DENY_NONE
으로 표시되지만 잘못된 플래그에 대해 불만을 토로합니다.Open OLE Compound Documents StgOpenStorage로 읽기 전용 문서를 엽니 다.
방법이 있습니까? 내가 잘못 가고있는거야?
미리 감사드립니다. 이것은 추측
이러한 플래그를 사용하면 StgOpenStorage에 대한 호출이 작동합니다. 많은 감사합니다! :) 다음 단계는 반환 된 인스턴스에서 OpenStream을 호출하는 것입니다.하지만 STG_E_INVALIDFUNCTION에 대해 불평하므로이 시간에는 같은 플래그를 사용할 수 없습니다. STG_READ | STGM_SHARE_EXCLUSIVE 및 작동합니다. 이제 공식 편집기 (CAD)를 사용하여 파일을 열고 오류없이 응용 프로그램과 동시에 열 수 있습니다. ^^; – Joril
나는 그것이 약간의 이해가된다고 생각한다. 그것은 독점적 인 접근으로 스트림을 열어야하는 것처럼 보이지만 일단 '트랜잭션'모드로 스토리지 객체를 열면 저장소 개체의 개인 복사본이므로 배타적 잠금을 설정해도 기본 파일에 대한 액세스가 차단되지 않습니다. (이게 나 한테 와플처럼 들리는데, 나 때문이야!) – DavidK
Ok : D 어쨌든 베타 테스트를 위해 새 버전의 응용 프로그램을 통과 시켰습니다. 다시 한번 감사드립니다 :) 다시 한번 감사드립니다! – Joril