void GetProcAddress <T>(string functionName, out T result) where T : class { IntPtr pointer = Alc.GetProcAddress(Handle, functionName); CheckError(); if (pointer == IntPtr.Zero) { throw new Exception("Cannot find function '" + functionName + "'."); } pointer.GetDelegateForFunctionPointer(out result); }