
- •Приложение Глобальные функции acmDriverAdd
- •AcmDriverEnum
- •AcmDriverEnumCallback
- •AcmDriverPriority
- •AcmDriverProc
- •AcmDriverRemove
- •AcmFilterChoose
- •AcmFilterChooseHookProc
- •AcmFilterEnum
- •AcmFilterEnumCallback
- •AcmFilterTagEnum
- •AcmFilterTagEnumCallback
- •AcmFormatChoose
- •AcmFormatChooseHookProc
- •AcmFormatEnum
- •AcmFormatEnumCallback
- •AcmFormatSuggest
- •AcmFormatTagDetails
- •AcmFormatTagEnum
- •AcmFormatTagEnumCallback
- •AcmMetrics
- •AcmStreamClose
- •AcmStreamConvert
- •AcmStreamConvertCallback
- •AcmStreamOpen
- •AcmStreamPrepareHeader
- •AcmStreamSize
- •AcmStreamUnprepareHeader
- •AfxGetApp
- •AfxGetInstanceHandle
- •AfxGetInstanceHandle
- •AuxGetDevCaps
- •AuxGetNumDevs
- •AuxGetVolume
- •AuxSetVolume
- •CoCreateInstance
- •CoInitialize
- •CommDlgExtendedError
- •CopyMemory
- •CoUninitialize
- •CreateEvent
- •CreateWaitableTimer
- •CreateWindowEx
- •DirectDrawCreate
- •DirectSoundCaptureCreate
- •DirectSoundCaptureEnumerate
- •DirectSoundCreate
- •DirectSoundEnumerate
- •DsEnumCallback
- •EnableWindow
- •FillMemory
- •FormatMessage
- •GetCurrentDirectory
- •GetDiskFreeSpace
- •GetDlgItem
- •GetLastError
- •GetOpenFileName
- •GetOpenFileNamePreview
- •GetSaveFileName
- •GetSaveFileNamePreview
- •GetTickCount
- •GetWindowRect
- •KillTimer
- •MciGetCreatorTask
- •MciGetDeviceId
- •MciGetErrorString
- •MciGetYieldProc
- •MciSendCommand
- •MciSendString
- •MciSetYieldProc
- •MciWndCreate
- •MciWndRegisterClass
- •MessageBeep
- •MessageBox
- •MmioAdvance
- •MmioAscend
- •MmioClose
- •MmioCreateChunk
- •MmioDescend
- •MmioFlush
- •MmioGetInfo
- •MmioInstallIoProc
- •MmioOpen
- •MmioProc
- •MmioRead
- •MmioRename
- •MmioSeek
- •MmioSendMessage
- •MmioSetBuffer
- •MmioSetInfo
- •MmioStringToFourcc
- •MmioWrite
- •MsgWaitForMultipleObjects
- •OutputDebugString
- •PlaySound
- •PulseEvent
- •QueryPerformanceCounter
- •QueryPerformanceFrequency
- •RegisterWindowMessage
- •ResetEvent
- •SetCurrentDirectory
- •SetCursor
- •SetDiBitsToDevice
- •SetEvent
- •SetTimer
- •SndPlaySound
- •TimeBeginPeriod
- •TimeEndPeriod
- •TimeGetDevCaps
- •TimeGetSystemTime
- •TimeGetTime
- •TimeKillEvent
- •TimeProc
- •TimerProc
- •TimeSetEvent
- •WaitForSingleObject
- •WaveInAddBuffer
- •WaveInGetDevCaps
- •WaveInGetErrorText
- •WaveInGetNumDevs
- •WaveInOpen
- •WaveInPrepareHeader
- •WaveInProc
- •WaveInReset
- •WaveInStart
- •WaveInStop
- •WaveInUnprepareHeader
- •WaveOutBreakLoop
- •WaveOutClose
- •WaveOutGetDevCaps
- •WaveOutGetErrorText
- •WaveOutGetNumDevs
- •WaveOutGetPitch
- •WaveOutGetPlaybackRate
- •WaveOutGetPosition
- •WaveOutGetVolume
- •WaveOutOpen
- •WaveOutPause
- •WaveOutPrepareHeader
- •WaveOutProc
- •WaveOutReset
- •WaveOutRestart
- •WaveOutSetPitch
- •WaveOutSetPlaybackRate
- •WaveOutSetVolume
- •WaveOutUnprepareHeader
- •WaveOutWrite
- •WinHelp
- •ZeroMemory
- •Интерфейсы
- •IDirectSound
- •IDirectSound::Compact
- •IDirectSound::CreateSoundBuffer
- •IDirectSound::DuplicateSoundBuffer
- •IDirectSound::GetCaps
- •IDirectSound::GetSpeakerConfig
- •IDirectSound::Initialize
- •IDirectSound::SetCooperativeLevel
- •IDirectSound::SetSpeakerConfig
- •IDirectSoundBuffer
- •IDirectSoundBuffer::GetCaps
- •IDirectSoundBuffer::GetCurrentPosition
- •IDirectSoundBuffer::GetFormat
- •IDirectSoundBuffer::GetFrequency
- •IDirectSoundBuffer::GetPan
- •IDirectSoundBuffer::GetStatus
- •IDirectSoundBuffer::GetVolume
- •IDirectSoundBuffer::Lock
- •IDirectSoundBuffer::Play
- •IDirectSoundBuffer::Restore
- •IDirectSoundBuffer::SetCurrentPosition
- •IDirectSoundBuffer::SetFormat
- •IDirectSoundBuffer::SetFrequency
- •IDirectSoundBuffer::SetPan
- •IDirectSoundBuffer::SetVolume
- •IDirectSoundBuffer::Stop
- •IDirectSoundBuffer::Unlock
- •IDirectSoundCapture
- •IDirectSoundCapture::CreateCaptureBuffer
- •IDirectSoundCapture::GetCaps
- •IDirectSoundCaptureBuffer
- •IDirectSoundCaptureBuffer::GetCaps
- •IDirectSoundCaptureBuffer::GetCurrentPosition
- •IDirectSoundCaptureBuffer::GetFormat
- •IDirectSoundCaptureBuffer::GetStatus
- •IDirectSoundCaptureBuffer::Lock
- •IDirectSoundCaptureBuffer::Start
- •IDirectSoundCaptureBuffer::Stop
- •IDirectSoundCaptureBuffer::Unlock
- •IDirectSoundNotify
- •IDirectSoundNotify::SetNotificationPositions
- •IKsPropertySet
- •IKsPropertySet::Get
- •IKsPropertySet::QuerySupport
- •IKsPropertySet::Set
- •IUnknown
- •Реализация
- •Использование
- •IUnknown::AddRef
- •IUnknown::QueryInterface
- •IUnknown::Release
- •Классы cArchive
- •CArchive::Read
- •CArchive::Write
- •CBitmap
- •CBitmap::CreateCompatibleBitmap
- •CBitmap::GetBitmapBits
- •CBitmap::SetBitmapBits
- •CCmdUi::ContinueRouting
- •CCmdUi::Enable
- •CCmdUi::SetCheck
- •Cdc::Attach
- •Cdc::BitBlt
- •Cdc::CreateCompatibleDc
- •Cdc::Detach
- •Cdc::EndDoc
- •Cdc::EndPage
- •Cdc::FillRect
- •Cdc::GetDeviceCaps
- •Cdc::GetSafeHdc
- •Cdc::GetTextExtent
- •Cdc::IsPrinting
- •Cdc::LineTo
- •Cdc::Rectangle
- •Cdc::SelectClipRgn
- •Cdc::SelectObject
- •Cdc::SetMapMode
- •Cdc::SetTextAlign
- •Cdc::SetViewportOrg
- •Cdc::StartDoc
- •Cdc::StartPage
- •CDialog
- •CDialog::OnCancel
- •CDialog::DoModal
- •CDialog::EndDialog
- •CDialog::OnInitDialog
- •CDialog::OnOk
- •CDocument
- •CDocument::GetFile
- •CDocument::GetPathName
- •CDocument::OnNewDocument
- •CDocument::ReleaseFile
- •CDocument::SetModifiedFlag
- •CDocument::UpdateAllViews
- •CFile::cFile
- •CFile::Close
- •CFile::GetFilePath
- •CFile::GetLength
- •CFile::Open
- •CFile::Read
- •CFile::Remove
- •CFile::Seek
- •CFile::SeekToBegin
- •CFile::SetLength
- •CFile::Write
- •CFrameWnd
- •CFrameWnd::Create
- •CFrameWnd::DockControlBar
- •CFrameWnd::EnableDocking
- •CFrameWnd::LoadBarState
- •CFrameWnd::LoadFrame
- •CFrameWnd::OnCreateClient
- •CFrameWnd::SaveBarState
- •CFrameWnd::SetActiveView
- •CFrameWnd::ShowControlBar
- •CObArray
- •CObArray::Add
- •CObArray::GetSize
- •CObArray::operator [ ]
- •CObArray::RemoveAll
- •CObArray::SetSize
- •CPropertyPage
- •CPropertyPage::OnSetActive
- •CPropertyPage::OnWizardBack
- •CPropertyPage::OnWizardFinish
- •CPropertyPage::OnWizardNext
- •CPropertySheet
- •CPropertySheet::AddPage
- •CPropertySheet::Construct
- •CPropertySheet::cPropertySheet
- •CPropertySheet::DoModal
- •CPropertySheet::GetPageIndex
- •CPropertySheet::SetActivePage
- •CPropertySheet::SetFinishText
- •CPropertySheet::SetTitle
- •CPropertySheet::SetWizardButtons
- •CPropertySheet::SetWizardMode
- •CRect::NormalizeRect
- •CRect::OffsetRect
- •CRect::PtInRect
- •CRect::SetRect
- •CRgn::CreateRectRgnIndirect
- •CSliderCtrl
- •CSliderCtrl::GetPos
- •CSliderCtrl::SetLineSize
- •CSliderCtrl::SetPageSize
- •CSliderCtrl::SetPos
- •CSliderCtrl::SetRange
- •CSliderCtrl::SetTicFreq
- •CSplitterWnd
- •CSplitterWnd::CreateStatic
- •CSplitterWnd::CreateView
- •CSplitterWnd::GetPane
- •CStatusBar
- •CStatusBar::CommandToIndex
- •CStatusBar::Create
- •CStatusBar::SetIndicators
- •CStatusBar::SetPaneInfo
- •CStatusBar::SetPaneText
- •CString
- •CString::Empty
- •CString::Format
- •CString::GetBuffer
- •CString::IsEmpty
- •CString::LoadString
- •CString::MakeReverse
- •CString::ReleaseBuffer
- •CView::DoPreparePrinting
- •CView::GetDocument
- •CView::OnBeginPrinting
- •CView::OnDraw
- •CView::OnInitialUpdate
- •CView::OnPrepareDc
- •CView::OnPreparePrinting
- •CView::OnPrint
- •CView::OnUpdate
- •CWinApp
- •CWinApp::AddDocTemplate
- •CWinApp::Enable3dControls
- •CWinApp::GetProfileInt
- •CWinApp::GetProfileString
- •CWinApp::InitInstance
- •CWinApp::LoadIcon
- •CWinApp::LoadStandardCursor
- •CWinApp::OpenDocumentFile
- •CWinApp::SetRegistryKey
- •CWinApp::WriteProfileInt
- •CWinApp::WriteProfileString
- •CWnd::DoDataExchange
- •CWnd::EnableWindow
- •CWnd::GetClientRect
- •CWnd::GetDlgItem
- •CWnd::GetParent
- •CWnd::GetParentFrame
- •CWnd::GetParentOwner
- •CWnd::GetSafeHwnd
- •CWnd::Invalidate
- •CWnd::IsDlgButtonChecked
- •CWnd::OnHScroll
- •CWnd::OnKillFocus
- •CWnd::OnSetFocus
- •CWnd::SetScrollInfo
- •CWnd::SetScrollPos
- •CWnd::ShowScrollBar
- •CWnd::UpdateData
- •Команды mci break
- •Capability
- •Sysinfo
- •Макросы mci_hms_hour
- •Mci_hms_minute
- •Mci_hms_second
- •Mci_make_hms
- •Mci_make_msf
- •Mci_make_tmsf
- •Mci_msf_frame
- •Mci_msf_minute
- •Mci_msf_second
- •Mci_tmsf_frame
- •Mci_tmsf_minute
- •Mci_tmsf_second
- •Mci_tmsf_track
- •MciWndCanConfig
- •MciWndCanEject
- •MciWndCanPlay
- •MciWndCanRecord
- •MciWndCanSave
- •MciWndCanWindow
- •MciWndChangeStyles
- •MciWndClose
- •MciWndDestroy
- •MciWndEnd
- •MciWndGetActiveTimer
- •MciWndGetAlias
- •MciWndGetDevice
- •MciWndGetDeviceId
- •MciWndGetEnd
- •MciWndGetError
- •MciWndGetFileName
- •MciWndGetInactiveTimer
- •MciWndGetLength
- •MciWndGetPosition
- •MciWndGetPositionString
- •MciWndGetRepeat
- •MciWndGetSpeed
- •MciWndGetStart
- •MciWndGetStyles
- •MciWndGetTimeFormat
- •MciWndGetVolume
- •MciWndHome
- •MciWndNew
- •MciWndOpen
- •MciWndOpenDialog
- •MciWndOpenInterface
- •MciWndPause
- •MciWndPlay
- •MciWndPlayFrom
- •MciWndPlayFromTo
- •MciWndPlayReverse
- •MciWndPlayTo
- •MciWndRecord
- •MciWndResume
- •MciWndReturnString
- •MciWndSave
- •MciWndSaveDialog
- •MciWndSeek
- •MciWndSendString
- •MciWndSetActiveTimer
- •MciWndSetInactiveTimer
- •MciWndSetOwner
- •MciWndSetRepeat
- •MciWndSetSpeed
- •MciWndSetTimeFormat
- •MciWndSetTimers
- •MciWndSetVolume
- •MciWndStep
- •MciWndStop
- •MciWndUseFrames
- •MciWndUseTime
- •MmioFourcc
- •Массивы patcharray
- •Keyarray
- •Сообщения mci_break
- •Mci_close
- •Mci_getdevcaps
- •Mci_index
- •Mci_open
- •Mci_pause
- •Mci_play
- •Mci_record
- •Mci_reserve
- •Mci_resume
- •Mci_save
- •Mci_seek
- •Mci_setaudio
- •Mci_status
- •Mci_stop
- •Mciwndm_can_config
- •Mciwndm_can_eject.
- •Mciwndm_can_play
- •Mciwndm_can_record
- •Mciwndm_can_save
- •Mciwndm_can_window
- •Mciwndm_changestyles
- •Mciwndm_getactivetimer
- •Mciwndm_getalias
- •Mciwndm_getdevice
- •Mciwndm_getdeviceid
- •Mciwndm_getend
- •Mciwndm_geterror
- •Mciwndm_getfilename
- •Mciwndm_getinactivetimer
- •Mciwndm_getlength
- •Mciwndm_getposition
- •Mciwndm_getrepeat
- •Mciwndm_getspeed
- •Mciwndm_getstart
- •Mciwndm_getstyles
- •Mciwndm_gettimeformat
- •Mciwndm_getvolume
- •Mciwndm_new
- •Mciwndm_notifyerror
- •Mciwndm_notifymedia
- •Mciwndm_notifymode
- •Mciwndm_notifypos
- •Mciwndm_open
- •Mciwndm_openinterface
- •Mciwndm_playfrom
- •Mciwndm_playreverse
- •Mciwndm_playto
- •Mciwndm_returnstring
- •Mciwndm_sendstring
- •Mciwndm_setactivetimer
- •Mciwndm_setinactivetimer
- •Mciwndm_setowner
- •Mciwndm_setrepeat
- •Mciwndm_setspeed
- •Mciwndm_settimeformat
- •Mciwndm_settimers
- •Mciwndm_setvolume
- •Mm_acm_formatchoose
- •Mm_mcinotify
- •Mm_mcisignal
- •Mm_wim_close
- •Mm_wim_data
- •Mm_wim_open
- •Mm_wom_close
- •Mm_wom_done
- •Mm_wom_open
- •Mmiom_close
- •Mmiom_open
- •Mmiom_read
- •Mmiom_rename
- •Mmiom_seek
- •Mmiom_write
- •Mmiom_writeflush
- •Wm_close
- •Wm_timer
- •Структуры acmdriverdetails
- •Acmfilterchoose
- •Acmformatchoose
- •Acmfilterdetails
- •Acmfiltertagdetails
- •Acmformatdetails
- •Acmformattagdetails
- •Acmstreamheader
- •Auxcaps
- •Bitmapinfo
- •Bitmapinfoheader
- •Createstruct
- •Dsbcaps
- •Dsbpositionnotify
- •Dsbufferdesc
- •Dscbcaps
- •Dscbufferdesc
- •Dsccaps
- •Logfont
- •Mci_break_parms
- •Mci_dgv_cue_parms
- •Mci_dgv_open_parms
- •Mci_dgv_pause_parms
- •Mci_dgv_play_parms
- •Mci_dgv_record_parms
- •Mci_dgv_reserve_parms
- •Mci_dgv_save_parms
- •Mci_dgv_set_parms
- •Mci_dgv_status_parms
- •Mci_generic_parms
- •Mci_getdevcaps_parms
- •Mci_open_parms
- •Mci_ovly_open_parms
- •Mci_ovly_save_parms
- •Mci_play_parms
- •Mci_record_parms
- •Mci_save_parms
- •Mci_seek_parms
- •Mci_seq_set_parms
- •Mci_set_parms
- •Mci_status_parms
- •Mci_vcr_cue_parms
- •Mci_vcr_play_parms
- •Mci_vcr_record_parms
- •Mci_vcr_seek_parms
- •Mci_vcr_set_parms
- •Mci_vcr_status_parms
- •Mci_vd_play_parms
- •Mci_wave_open_parms
- •Mci_wave_set_parms
- •Mmckinfo
- •Mmioinfo
- •Openfilename
- •Rgbquad
- •Scrollinfo
- •Security_attributes
- •Timecaps
- •Wavefilter
- •Waveformatex
- •Wavehdr
- •Waveincaps
- •Waveoutcaps
CopyMemory
VOID CopyMemory( PVOID Destination, CONST VOID *Source, DWORD Length );
Аргументы
Destination — указатель на блок памяти, в который будет копироваться информация.
Source — указатель на блок памяти, из которого будет копироваться информация.
Length — размер копируемого блока информации в байтах
Примечание
Функция CopyMemory копирует блок памяти из одного места в другое. Если используемые данной функцией блоки памяти перекрываются, результат работы функции не определён. Для перекрывающихся областей памяти следует использовать функцию MoveMemory.
Описание данной функции содержится в файле заголовка winbase.h.
CoUninitialize
void CoUninitialize( );
Примечание
Закрывает библиотеку COM в текущем разделе, выгружает библиотеки динамической компоновки, загруженные в данный раздел, освобождает все ресурсы, используемые в данном разделе и инициализирует разрыв всех связей RPC данного раздела.
Раздел должен вызывать отдельную функцию CoUninitialize для каждого предшествующего вызова функций CoInitialize и CoInitializeEx. Вызов функции CoUninitialize является единственным способом закрыть библиотеку, открытую функциями CoInitialize и CoInitializeEx.
Вызову функции OleInitialize должен соответствовать вызов функции OleUninitialize. Функция OleUninitialize содержит вызов функции CoUninitialize, поэтому в приложениях, вызывающих функцию OleUninitialize нет необходимости дополнительно вызывать функцию CoUninitialize.
Функция CoUninitialize должна быть вызвана перед закрытием приложения как последнее обращение к библиотеке COM после того, как будет скрыто главное окно приложения и его главный цикл обработки сообщений завершит свою работу. Если в приложении остались открытые диалоги функция CoUninitialize открывает модальный цикл обработки сообщений и распределяет все приходящие сообщения от контейнеров и серверов среди приложений COM. При распределении сообщений функция CoUninitialize следит за тем, чтобы приложение не завершило свою работу до того, как оно получит все посланные ему сообщения. Все сообщения не относящиеся к COM игнорируются.
Описание данной функции содержится в файле заголовка objbase.h. Данная функция включается как ресурс в библиотеку динамической компоновки ole32.dll.
CreateEvent
HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName);
Возвращаемое значение
В случае успешного завершения функции возвращается дескриптор объекта события. Если именованный объект события существовал до вызова данной функции, то функция возвращает дескриптор существующего объекта, а функция GetLastError возвращает значение ERROR_ALREADY_EXISTS.
Если в процессе выполнения данной функции возникает ошибка, то возвращается нулевое значение. Расширенную информацию по ошибке можно получить, вызвав функцию GetLastError.
Аргументы
lpEventAttributes — указатель на объект структуры SECURITY_ATTRIBUTES, определяющую может ли возвращаемый дескриптор наследоваться дочерним процессом. Если данный аргумент имеет нулевое значение, то дескриптор не может наследоваться. В Windows NT переменная lpSecurityDescriptor, являющаяся членом структуры, определяет дескриптор безопасности нового объекта события. Если эта переменная равна нулю, то объект события использует дескриптор безопасности, заданный по умолчанию.
bManualReset — определяет ручной или автоматический сброс объекта события при его создании. Если этот аргумент имеет значение TRUE, то для сброса данного объекта события в неотмеченное состояние необходимо использовать функцию ResetEvent. В противном случае система автоматически сбрасывает состояние данного объекта события в неотмеченное после освобождения единственного ждущего потока.
bInitialState — определяет начальное состояние объекта события. Если данный аргумент имеет значение TRUE, то данный объект события изначально отмечен.
lpName — указатель на заканчивающуюся нулём строку, содержащую имя объекта события. Длина данного имени ограничивается величиной MAX_PATH и может содержать любые символы кроме символа черты, наклонённой влево, используемой для разделения полей при задании пути к файлу. При сравнении имён учитывается регистр использованных символов.
Если аргумент lpName совпадает с именем существующего именованного объекта, данная функция запрашивает доступ к данному объекту в режиме EVENT_ALL_ACCESS. В этом случае значения аргументов bManualReset и bInitialState игнорируются. Если аргумент lpEventAttributes имеет ненулевое значение, он определяет возможность наследования дескриптора, но его дескриптор безопасности игнорируется. Если аргумент lpName имеет значение NULL, то создаётся неименованный объект события.
Если аргумент lpName совпадает с именем семафора, объекта mutex, таймера ожидания, задания или объекта карты файла (file-mapping object), функция прекращает свою работу, а функция GetLastError возвращает значение ERROR_INVALID_HANDLE. Это происходит потому, что эти объекты разделяют одно и то же пространство имён.
Примечание
Функция CreateEvent позволяет создавать именованные и неименованные объекты событий. Дескриптор, возвращаемый данной функцией, имеет право доступа EVENT_ALL_ACCESS к новому объекту события и может быть использован любой функцией, имеющей в качестве аргумента дескриптор данного объекта.
Любой поток вызывающего процесса может использовать дескриптор объекта события при вызове любой из функций ожидания. Функции ожидания, использующие один объект, возвращают своё значение после того, как будет отмечен соответствующий объект события. Функции ожидания, использующие несколько объектов, могут быть настроены таким образом, чтобы возвращать своё значение после того, как будет отмечен любой из связанных с нею объектов событий, или когда будут отмечены все эти объекты событий. После возвращения значения функцией ожидания ожидающий поток может продолжить свою работу.
Начальное состояние объекта события определяется аргументом bInitialState. Для установления объекта события в отмеченное состояние используется функция SetEvent, а для сброса отмеченного состояния используется функция ResetEvent. Отмеченное состояние объекта события, созданного в режиме ручного сброса, остаётся таковым до вызова пользователем функции ResetEvent. Пока состояние объекта события остаётся отмеченным может быть возобновлена работа любого количества ждущих потоков или потоков, которые последовательно запускали операцию ожидания с использованием данного объекта события.
Отмеченное состояние объекта события, созданного в режиме автоматического сброса, остаётся таковым до возобновления работы одного ожидающего потока. После этого система автоматически сбрасывает отмеченное состояние объекта события. Если ожидающие потоки отсутствуют, состояние объекта события остаётся отмеченным.
Несколько процессов могут использовать дескрипторы одного объекта события, позволяющего этим процессам осуществлять взаимную синхронизацию. Возможно использование следующих механизмов разделения объектов:
Функция CreateProcess создаёт дочерний процесс, который наследует дескриптор объекта события, если значение аргумента lpEventAttributes в функции CreateEvent допускает это наследование.
Процесс может передать дескриптор объекта события в аргументе функции DuplicateHandle создающей дубликат дескриптора, который может использоваться другим процессом.
Процесс может передать имя объекта события в аргументе функций OpenEvent или CreateEvent.
Для уничтожения дескриптора используется функция CloseHandle. Система автоматически уничтожает дескриптор при завершении процесса. Объект события уничтожается при уничтожении его последнего дескриптора.
Описание данной функции содержится в файле заголовка winbase.h. При работе с данной функцией следует включить в проект библиотеку kernel32.lib.