com.jinvoke.win32
Class Winmm

java.lang.Object
  extended by com.jinvoke.win32.Winmm

public class Winmm
extends java.lang.Object


Constructor Summary
Winmm()
           
 
Method Summary
static int auxGetDevCaps(int uDeviceID, AuxCaps pac, int cbac)
           
static int auxGetNumDevs()
           
static int auxGetVolume(int uDeviceID, int[] pdwVolume)
           
static int auxOutMessage(int uDeviceID, int uMsg, int dw1, int dw2)
           
static int auxSetVolume(int uDeviceID, int dwVolume)
           
static int CloseDriver(int hDriver, int lParam1, int lParam2)
           
static int DefDriverProc(int dwDriverIdentifier, int hdrvr, int uMsg, int lParam1, int lParam2)
           
static int DrvGetModuleHandle(int hDriver)
           
static int GetDriverModuleHandle(int hDriver)
           
static int joyGetDevCaps(int uJoyID, JoyCaps pjc, int cbjc)
           
static int joyGetNumDevs()
           
static int joyGetPos(int uJoyID, JoyInfo pji)
           
static int joyGetPosEx(int uJoyID, JoyInfoEx pji)
           
static int joyGetThreshold(int uJoyID, int[] puThreshold)
           
static int joyReleaseCapture(int uJoyID)
           
static int joySetCapture(int hwnd, int uJoyID, int uPeriod, boolean fChanged)
           
static int joySetThreshold(int uJoyID, int uThreshold)
           
static boolean mciExecute(java.lang.String cmd)
           
static int mciGetCreatorTask(int mciId)
           
static int mciGetDeviceID(java.lang.String pszDevice)
           
static int mciGetDeviceIDFromElementID(int dwElementID, java.lang.String lpstrType)
           
static boolean mciGetErrorString(int mcierr, java.lang.StringBuffer pszText, int cchText)
           
static int mciGetYieldProc(int mciId, int[] pdwYieldData)
           
static int mciSendCommand(int mciId, int uMsg, int dwParam1, byte[] dwParam2)
           
static int mciSendCommand(int mciId, int uMsg, int dwParam1, int dwParam2)
           
static int mciSendString(java.lang.String lpstrCommand, java.lang.StringBuffer lpstrReturnString, int uReturnLength, int hwndCallback)
           
static boolean mciSetYieldProc(int mciId, Callback fpYieldProc, int dwYieldData)
           
static int midiConnect(int hmi, int hmo, int pReserved)
           
static int midiDisconnect(int hmi, int hmo, int pReserved)
           
static int midiInAddBuffer(int hmi, MidiHdr pmh, int cbmh)
           
static int midiInClose(int hmi)
           
static int midiInGetDevCaps(int uDeviceID, MidiInCaps pmic, int cbmic)
           
static int midiInGetErrorText(int mmrError, java.lang.StringBuffer pszText, int cchText)
           
static int midiInGetID(int hmi, int[] puDeviceID)
           
static int midiInGetNumDevs()
           
static int midiInMessage(int hmi, int uMsg, int dw1, int dw2)
           
static int midiInOpen(int phmi, int uDeviceID, int dwCallback, int dwInstance, int fdwOpen)
           
static int midiInPrepareHeader(int hmi, MidiHdr pmh, int cbmh)
           
static int midiInReset(int hmi)
           
static int midiInStart(int hmi)
           
static int midiInStop(int hmi)
           
static int midiInUnprepareHeader(int hmi, MidiHdr pmh, int cbmh)
           
static int midiOutCacheDrumPatches(int hmo, int uPatch, short[] pwkya, int fuCache)
           
static int midiOutCachePatches(int hmo, int uBank, short[] pwpa, int fuCache)
           
static int midiOutClose(int hmo)
           
static int midiOutGetDevCaps(int uDeviceID, MidiOutCaps pmoc, int cbmoc)
           
static int midiOutGetErrorText(int mmrError, java.lang.StringBuffer pszText, int cchText)
           
static int midiOutGetID(int hmo, int[] puDeviceID)
           
static int midiOutGetNumDevs()
           
static int midiOutGetVolume(int hmo, int[] pdwVolume)
           
static int midiOutLongMsg(int hmo, MidiHdr pmh, int cbmh)
           
static int midiOutMessage(int hmo, int uMsg, int dw1, int dw2)
           
static int midiOutOpen(int phmo, int uDeviceID, int dwCallback, int dwInstance, int fdwOpen)
           
static int midiOutPrepareHeader(int hmo, MidiHdr pmh, int cbmh)
           
static int midiOutReset(int hmo)
           
static int midiOutSetVolume(int hmo, int dwVolume)
           
static int midiOutShortMsg(int hmo, int dwMsg)
           
static int midiOutUnprepareHeader(int hmo, MidiHdr pmh, int cbmh)
           
static int midiStreamClose(int hms)
           
static int midiStreamOpen(int phms, int[] puDeviceID, int cMidi, int dwCallback, int dwInstance, int fdwOpen)
           
static int midiStreamOut(int hms, MidiHdr pmh, int cbmh)
           
static int midiStreamPause(int hms)
           
static int midiStreamProperty(int hms, byte[] lppropdata, int dwProperty)
           
static int midiStreamRestart(int hms)
           
static int midiStreamStop(int hms)
           
static int mixerClose(int hmx)
           
static int mixerGetDevCaps(int uMxId, MixerCaps pmxcaps, int cbmxcaps)
           
static int mixerGetID(int hmxobj, int[] puMxId, int fdwId)
           
static int mixerGetLineInfo(int hmxobj, MixerLine pmxl, int fdwInfo)
           
static int mixerGetNumDevs()
           
static int mixerMessage(int hmx, int uMsg, int dwParam1, int dwParam2)
           
static int mixerOpen(int phmx, int uMxId, int dwCallback, int dwInstance, int fdwOpen)
           
static int mmioAdvance(int hmmio, MMIOInfo pmmioinfo, int fuAdvance)
           
static int mmioAscend(int hmmio, MMCKInfo pmmcki, int fuAscend)
           
static int mmioClose(int hmmio, int fuClose)
           
static int mmioCreateChunk(int hmmio, MMCKInfo pmmcki, int fuCreate)
           
static int mmioDescend(int hmmio, MMCKInfo pmmcki, MMCKInfo pmmckiParent, int fuDescend)
           
static int mmioFlush(int hmmio, int fuFlush)
           
static int mmioGetInfo(int hmmio, MMIOInfo pmmioinfo, int fuInfo)
           
static int mmioOpen(java.lang.String pszFileName, MMIOInfo pmmioinfo, int fdwOpen)
           
static int mmioRead(int hmmio, byte[] pch, int cch)
           
static int mmioRename(java.lang.String pszFileName, java.lang.String pszNewFileName, MMIOInfo pmmioinfo, int fdwRename)
           
static int mmioSeek(int hmmio, int lOffset, int iOrigin)
           
static int mmioSendMessage(int hmmio, int uMsg, int lParam1, int lParam2)
           
static int mmioSetBuffer(int hmmio, int pchBuffer, int cchBuffer, int fuBuffer)
           
static int mmioSetInfo(int hmmio, MMIOInfo pmmioinfo, int fuInfo)
           
static int mmioStringToFOURCC(java.lang.String sz, int uFlags)
           
static int mmioWrite(int hmmio, byte[] pch, int cch)
           
static int OpenDriver(java.lang.String szDriverName, java.lang.String szSectionName, int lParam2)
           
static boolean PlaySound(java.lang.String pszSound, int hmod, int fdwSound)
           
static int SendDriverMessage(int hDriver, int message, int lParam1, int lParam2)
           
static boolean sndPlaySound(java.lang.String pszSound, int fuSound)
           
static int timeBeginPeriod(int uPeriod)
           
static int timeEndPeriod(int uPeriod)
           
static int timeGetDevCaps(TimeCaps ptc, int cbtc)
           
static int timeGetTime()
           
static int timeKillEvent(int uTimerID)
           
static int timeSetEvent(int uDelay, int uResolution, Callback fptc, int dwUser, int fuEvent)
           
static int waveInAddBuffer(int hwi, WaveHdr pwh, int cbwh)
           
static int waveInClose(int hwi)
           
static int waveInGetDevCaps(int uDeviceID, WaveInCaps pwic, int cbwic)
           
static int waveInGetErrorText(int mmrError, java.lang.StringBuffer pszText, int cchText)
           
static int waveInGetID(int hwi, int[] puDeviceID)
           
static int waveInGetNumDevs()
           
static int waveInMessage(int hwi, int uMsg, int dw1, int dw2)
           
static int waveInOpen(int[] phwi, int uDeviceID, WaveFormatEx pwfx, int dwCallback, int dwInstance, int fdwOpen)
           
static int waveInPrepareHeader(int hwi, WaveHdr pwh, int cbwh)
           
static int waveInReset(int hwi)
           
static int waveInStart(int hwi)
           
static int waveInStop(int hwi)
           
static int waveInUnprepareHeader(int hwi, WaveHdr pwh, int cbwh)
           
static int waveOutBreakLoop(int hwo)
           
static int waveOutClose(int hwo)
           
static int waveOutGetDevCaps(int uDeviceID, WaveOutCaps pwoc, int cbwoc)
           
static int waveOutGetErrorText(int mmrError, java.lang.StringBuffer pszText, int cchText)
           
static int waveOutGetID(int hwo, int[] puDeviceID)
           
static int waveOutGetNumDevs()
           
static int waveOutGetPitch(int hwo, int[] pdwPitch)
           
static int waveOutGetPlaybackRate(int hwo, int[] pdwRate)
           
static int waveOutGetVolume(int hwo, int[] pdwVolume)
           
static int waveOutMessage(int hwo, int uMsg, int dw1, int dw2)
           
static int waveOutOpen(int[] phwo, int uDeviceID, WaveFormatEx pwfx, int dwCallback, int dwInstance, int fdwOpen)
           
static int waveOutPause(int hwo)
           
static int waveOutPrepareHeader(int hwo, WaveHdr pwh, int cbwh)
           
static int waveOutReset(int hwo)
           
static int waveOutRestart(int hwo)
           
static int waveOutSetPitch(int hwo, int dwPitch)
           
static int waveOutSetPlaybackRate(int hwo, int dwRate)
           
static int waveOutSetVolume(int hwo, int dwVolume)
           
static int waveOutUnprepareHeader(int hwo, WaveHdr pwh, int cbwh)
           
static int waveOutWrite(int hwo, WaveHdr pwh, int cbwh)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Winmm

public Winmm()
Method Detail

CloseDriver

public static int CloseDriver(int hDriver,
                              int lParam1,
                              int lParam2)

DefDriverProc

public static int DefDriverProc(int dwDriverIdentifier,
                                int hdrvr,
                                int uMsg,
                                int lParam1,
                                int lParam2)

DrvGetModuleHandle

public static int DrvGetModuleHandle(int hDriver)

GetDriverModuleHandle

public static int GetDriverModuleHandle(int hDriver)

OpenDriver

public static int OpenDriver(java.lang.String szDriverName,
                             java.lang.String szSectionName,
                             int lParam2)

PlaySound

public static boolean PlaySound(java.lang.String pszSound,
                                int hmod,
                                int fdwSound)

SendDriverMessage

public static int SendDriverMessage(int hDriver,
                                    int message,
                                    int lParam1,
                                    int lParam2)

auxGetDevCaps

public static int auxGetDevCaps(int uDeviceID,
                                AuxCaps pac,
                                int cbac)

auxGetNumDevs

public static int auxGetNumDevs()

auxGetVolume

public static int auxGetVolume(int uDeviceID,
                               int[] pdwVolume)

auxOutMessage

public static int auxOutMessage(int uDeviceID,
                                int uMsg,
                                int dw1,
                                int dw2)

auxSetVolume

public static int auxSetVolume(int uDeviceID,
                               int dwVolume)

joyGetDevCaps

public static int joyGetDevCaps(int uJoyID,
                                JoyCaps pjc,
                                int cbjc)

joyGetNumDevs

public static int joyGetNumDevs()

joyGetPos

public static int joyGetPos(int uJoyID,
                            JoyInfo pji)

joyGetPosEx

public static int joyGetPosEx(int uJoyID,
                              JoyInfoEx pji)

joyGetThreshold

public static int joyGetThreshold(int uJoyID,
                                  int[] puThreshold)

joyReleaseCapture

public static int joyReleaseCapture(int uJoyID)

joySetCapture

public static int joySetCapture(int hwnd,
                                int uJoyID,
                                int uPeriod,
                                boolean fChanged)

joySetThreshold

public static int joySetThreshold(int uJoyID,
                                  int uThreshold)

mciGetCreatorTask

public static int mciGetCreatorTask(int mciId)

mciGetDeviceIDFromElementID

public static int mciGetDeviceIDFromElementID(int dwElementID,
                                              java.lang.String lpstrType)

mciGetDeviceID

public static int mciGetDeviceID(java.lang.String pszDevice)

mciGetErrorString

public static boolean mciGetErrorString(int mcierr,
                                        java.lang.StringBuffer pszText,
                                        int cchText)

mciGetYieldProc

public static int mciGetYieldProc(int mciId,
                                  int[] pdwYieldData)

mciExecute

public static boolean mciExecute(java.lang.String cmd)

mciSendCommand

public static int mciSendCommand(int mciId,
                                 int uMsg,
                                 int dwParam1,
                                 int dwParam2)

mciSendCommand

public static int mciSendCommand(int mciId,
                                 int uMsg,
                                 int dwParam1,
                                 byte[] dwParam2)

mciSendString

public static int mciSendString(java.lang.String lpstrCommand,
                                java.lang.StringBuffer lpstrReturnString,
                                int uReturnLength,
                                int hwndCallback)

mciSetYieldProc

public static boolean mciSetYieldProc(int mciId,
                                      Callback fpYieldProc,
                                      int dwYieldData)

midiConnect

public static int midiConnect(int hmi,
                              int hmo,
                              int pReserved)

midiDisconnect

public static int midiDisconnect(int hmi,
                                 int hmo,
                                 int pReserved)

midiInAddBuffer

public static int midiInAddBuffer(int hmi,
                                  MidiHdr pmh,
                                  int cbmh)

midiInClose

public static int midiInClose(int hmi)

midiInGetDevCaps

public static int midiInGetDevCaps(int uDeviceID,
                                   MidiInCaps pmic,
                                   int cbmic)

midiInGetErrorText

public static int midiInGetErrorText(int mmrError,
                                     java.lang.StringBuffer pszText,
                                     int cchText)

midiInGetID

public static int midiInGetID(int hmi,
                              int[] puDeviceID)

midiInGetNumDevs

public static int midiInGetNumDevs()

midiInMessage

public static int midiInMessage(int hmi,
                                int uMsg,
                                int dw1,
                                int dw2)

midiInOpen

public static int midiInOpen(int phmi,
                             int uDeviceID,
                             int dwCallback,
                             int dwInstance,
                             int fdwOpen)

midiInPrepareHeader

public static int midiInPrepareHeader(int hmi,
                                      MidiHdr pmh,
                                      int cbmh)

midiInReset

public static int midiInReset(int hmi)

midiInStart

public static int midiInStart(int hmi)

midiInStop

public static int midiInStop(int hmi)

midiInUnprepareHeader

public static int midiInUnprepareHeader(int hmi,
                                        MidiHdr pmh,
                                        int cbmh)

midiOutCacheDrumPatches

public static int midiOutCacheDrumPatches(int hmo,
                                          int uPatch,
                                          short[] pwkya,
                                          int fuCache)

midiOutCachePatches

public static int midiOutCachePatches(int hmo,
                                      int uBank,
                                      short[] pwpa,
                                      int fuCache)

midiOutClose

public static int midiOutClose(int hmo)

midiOutGetDevCaps

public static int midiOutGetDevCaps(int uDeviceID,
                                    MidiOutCaps pmoc,
                                    int cbmoc)

midiOutGetErrorText

public static int midiOutGetErrorText(int mmrError,
                                      java.lang.StringBuffer pszText,
                                      int cchText)

midiOutGetID

public static int midiOutGetID(int hmo,
                               int[] puDeviceID)

midiOutGetNumDevs

public static int midiOutGetNumDevs()

midiOutGetVolume

public static int midiOutGetVolume(int hmo,
                                   int[] pdwVolume)

midiOutLongMsg

public static int midiOutLongMsg(int hmo,
                                 MidiHdr pmh,
                                 int cbmh)

midiOutMessage

public static int midiOutMessage(int hmo,
                                 int uMsg,
                                 int dw1,
                                 int dw2)

midiOutOpen

public static int midiOutOpen(int phmo,
                              int uDeviceID,
                              int dwCallback,
                              int dwInstance,
                              int fdwOpen)

midiOutPrepareHeader

public static int midiOutPrepareHeader(int hmo,
                                       MidiHdr pmh,
                                       int cbmh)

midiOutReset

public static int midiOutReset(int hmo)

midiOutSetVolume

public static int midiOutSetVolume(int hmo,
                                   int dwVolume)

midiOutShortMsg

public static int midiOutShortMsg(int hmo,
                                  int dwMsg)

midiOutUnprepareHeader

public static int midiOutUnprepareHeader(int hmo,
                                         MidiHdr pmh,
                                         int cbmh)

midiStreamClose

public static int midiStreamClose(int hms)

midiStreamOpen

public static int midiStreamOpen(int phms,
                                 int[] puDeviceID,
                                 int cMidi,
                                 int dwCallback,
                                 int dwInstance,
                                 int fdwOpen)

midiStreamOut

public static int midiStreamOut(int hms,
                                MidiHdr pmh,
                                int cbmh)

midiStreamPause

public static int midiStreamPause(int hms)

midiStreamProperty

public static int midiStreamProperty(int hms,
                                     byte[] lppropdata,
                                     int dwProperty)

midiStreamRestart

public static int midiStreamRestart(int hms)

midiStreamStop

public static int midiStreamStop(int hms)

mixerClose

public static int mixerClose(int hmx)

mixerGetDevCaps

public static int mixerGetDevCaps(int uMxId,
                                  MixerCaps pmxcaps,
                                  int cbmxcaps)

mixerGetID

public static int mixerGetID(int hmxobj,
                             int[] puMxId,
                             int fdwId)

mixerGetLineInfo

public static int mixerGetLineInfo(int hmxobj,
                                   MixerLine pmxl,
                                   int fdwInfo)

mixerGetNumDevs

public static int mixerGetNumDevs()

mixerMessage

public static int mixerMessage(int hmx,
                               int uMsg,
                               int dwParam1,
                               int dwParam2)

mixerOpen

public static int mixerOpen(int phmx,
                            int uMxId,
                            int dwCallback,
                            int dwInstance,
                            int fdwOpen)

mmioAdvance

public static int mmioAdvance(int hmmio,
                              MMIOInfo pmmioinfo,
                              int fuAdvance)

mmioAscend

public static int mmioAscend(int hmmio,
                             MMCKInfo pmmcki,
                             int fuAscend)

mmioClose

public static int mmioClose(int hmmio,
                            int fuClose)

mmioCreateChunk

public static int mmioCreateChunk(int hmmio,
                                  MMCKInfo pmmcki,
                                  int fuCreate)

mmioDescend

public static int mmioDescend(int hmmio,
                              MMCKInfo pmmcki,
                              MMCKInfo pmmckiParent,
                              int fuDescend)

mmioFlush

public static int mmioFlush(int hmmio,
                            int fuFlush)

mmioGetInfo

public static int mmioGetInfo(int hmmio,
                              MMIOInfo pmmioinfo,
                              int fuInfo)

mmioOpen

public static int mmioOpen(java.lang.String pszFileName,
                           MMIOInfo pmmioinfo,
                           int fdwOpen)

mmioRead

public static int mmioRead(int hmmio,
                           byte[] pch,
                           int cch)

mmioRename

public static int mmioRename(java.lang.String pszFileName,
                             java.lang.String pszNewFileName,
                             MMIOInfo pmmioinfo,
                             int fdwRename)

mmioSeek

public static int mmioSeek(int hmmio,
                           int lOffset,
                           int iOrigin)

mmioSendMessage

public static int mmioSendMessage(int hmmio,
                                  int uMsg,
                                  int lParam1,
                                  int lParam2)

mmioSetBuffer

public static int mmioSetBuffer(int hmmio,
                                int pchBuffer,
                                int cchBuffer,
                                int fuBuffer)

mmioSetInfo

public static int mmioSetInfo(int hmmio,
                              MMIOInfo pmmioinfo,
                              int fuInfo)

mmioStringToFOURCC

public static int mmioStringToFOURCC(java.lang.String sz,
                                     int uFlags)

mmioWrite

public static int mmioWrite(int hmmio,
                            byte[] pch,
                            int cch)

sndPlaySound

public static boolean sndPlaySound(java.lang.String pszSound,
                                   int fuSound)

timeBeginPeriod

public static int timeBeginPeriod(int uPeriod)

timeEndPeriod

public static int timeEndPeriod(int uPeriod)

timeGetDevCaps

public static int timeGetDevCaps(TimeCaps ptc,
                                 int cbtc)

timeGetTime

public static int timeGetTime()

timeKillEvent

public static int timeKillEvent(int uTimerID)

timeSetEvent

public static int timeSetEvent(int uDelay,
                               int uResolution,
                               Callback fptc,
                               int dwUser,
                               int fuEvent)

waveInAddBuffer

public static int waveInAddBuffer(int hwi,
                                  WaveHdr pwh,
                                  int cbwh)

waveInClose

public static int waveInClose(int hwi)

waveInGetDevCaps

public static int waveInGetDevCaps(int uDeviceID,
                                   WaveInCaps pwic,
                                   int cbwic)

waveInGetErrorText

public static int waveInGetErrorText(int mmrError,
                                     java.lang.StringBuffer pszText,
                                     int cchText)

waveInGetID

public static int waveInGetID(int hwi,
                              int[] puDeviceID)

waveInGetNumDevs

public static int waveInGetNumDevs()

waveInMessage

public static int waveInMessage(int hwi,
                                int uMsg,
                                int dw1,
                                int dw2)

waveInOpen

public static int waveInOpen(int[] phwi,
                             int uDeviceID,
                             WaveFormatEx pwfx,
                             int dwCallback,
                             int dwInstance,
                             int fdwOpen)

waveInPrepareHeader

public static int waveInPrepareHeader(int hwi,
                                      WaveHdr pwh,
                                      int cbwh)

waveInReset

public static int waveInReset(int hwi)

waveInStart

public static int waveInStart(int hwi)

waveInStop

public static int waveInStop(int hwi)

waveInUnprepareHeader

public static int waveInUnprepareHeader(int hwi,
                                        WaveHdr pwh,
                                        int cbwh)

waveOutBreakLoop

public static int waveOutBreakLoop(int hwo)

waveOutClose

public static int waveOutClose(int hwo)

waveOutGetDevCaps

public static int waveOutGetDevCaps(int uDeviceID,
                                    WaveOutCaps pwoc,
                                    int cbwoc)

waveOutGetErrorText

public static int waveOutGetErrorText(int mmrError,
                                      java.lang.StringBuffer pszText,
                                      int cchText)

waveOutGetID

public static int waveOutGetID(int hwo,
                               int[] puDeviceID)

waveOutGetNumDevs

public static int waveOutGetNumDevs()

waveOutGetPitch

public static int waveOutGetPitch(int hwo,
                                  int[] pdwPitch)

waveOutGetPlaybackRate

public static int waveOutGetPlaybackRate(int hwo,
                                         int[] pdwRate)

waveOutGetVolume

public static int waveOutGetVolume(int hwo,
                                   int[] pdwVolume)

waveOutMessage

public static int waveOutMessage(int hwo,
                                 int uMsg,
                                 int dw1,
                                 int dw2)

waveOutOpen

public static int waveOutOpen(int[] phwo,
                              int uDeviceID,
                              WaveFormatEx pwfx,
                              int dwCallback,
                              int dwInstance,
                              int fdwOpen)

waveOutPause

public static int waveOutPause(int hwo)

waveOutPrepareHeader

public static int waveOutPrepareHeader(int hwo,
                                       WaveHdr pwh,
                                       int cbwh)

waveOutReset

public static int waveOutReset(int hwo)

waveOutRestart

public static int waveOutRestart(int hwo)

waveOutSetPitch

public static int waveOutSetPitch(int hwo,
                                  int dwPitch)

waveOutSetPlaybackRate

public static int waveOutSetPlaybackRate(int hwo,
                                         int dwRate)

waveOutSetVolume

public static int waveOutSetVolume(int hwo,
                                   int dwVolume)

waveOutUnprepareHeader

public static int waveOutUnprepareHeader(int hwo,
                                         WaveHdr pwh,
                                         int cbwh)

waveOutWrite

public static int waveOutWrite(int hwo,
                               WaveHdr pwh,
                               int cbwh)