??????????
????????????????漰???????????????????????????????????????????????????????????????????????????????????????????????Ч??????????????????????????????????????????????????????????????????????????????????????????????????????????£????в????????????????
?????????????????
???????????????????У???????????????????????????????????ж?·??????????????????????????????????·???????????з??????·??????洢??????????????????????????????????????????????ж?·??????????????????????????????????????????????????????????????
???????棬????????????????????
1 class CAVIFile
2 {
3 public:
4     CAVIFile();
5
6     HRESULT OpenFile(const string& strFileName?? const string& strDirectoryPath)
7     {
8         // ....
9         SetCurrentDirectory(strDirectoryPath.c_str());
10         // ...
11     }
12
13     HRESULT WriteVideo(LPVOID lpBuffer?? LONG cbBuffer); // д?????????
14     HRESULT WriteAudio(LPVOID lpBuffer?? LONG cbBuffer); // д???????????????
15     void CloseFile();
16
17 private:
18     // ?Щ????????????????
19     // ...
20 };
?????????????????????????????ж?·?????????????????OpenFile()?????????????????????????????????????г??????????????????????????OpenFile()???????????????????????????????????????????????????????????????????????????????CAVIFile???????????????У????????CAVIFile???????????????????????????????CAVIFile???????????????????????????????????????????
?????????????????????????
1 class CAVIFile
2 {
3 public:
4     CAVIFile()
5     {
6         InitializeCriticalSection(&m_criticalSection); // ??????????
7     }
8     HRESULT OpenFile(const string& strFileName?? const string& strDirectoryPath)
9     {
10         // ....
11         EnterCriticalSection(&m_criticalSection);
12         SetCurrentDirectory(strDirectoryPath.c_str());
13         // ...
14         LeaveCriticalSection(&m_criticalSection);
15         //...
16     }
17     // ...
18 private:
19     // ...
20     // ?????????????????????
21     static CRITICAL_SECTION m_criticalSection;
22 };
23 CRITICAL_SECTION CAVIFile::m_criticalSection;
?????????????????????????????????????CAVIFile??????InitializeCriticalSection(&m_criticalSection);??Σ?????????????m_criticalSection???????????????????????CAVIFile????????????m_criticalSection???????InitializeCriticalSection(&m_criticalSection)??Σ????????InitializeCriticalSection()??Σ?????????????????й????????CRITICAL_SECTION????InitializeCriticalSection()??Σ?????????????????????????????о????????????2???????CRITICAL_SECTION????????????InitializeCriticalSection()??????Σ???