I generally keep my Lua alien functions in the Global Lua tab, so I'm not sure if that would cause any type of issue. The setup below worked for me.
In my Global Lua tab: (adjust as necessary if you already have any of these underlying objects defined)
alien = alien.core
shell32 = alien.load("shell32.dll")
gEmpRecycleBin = shell32.SHEmptyRecycleBinA
gEmpRecycleBin:types{ ret = 'long', abi = 'stdcall', 'long', 'string', 'ulong' }
function aEmpRecycleBin(hWnd, rootPath, dwFlags)
return gEmpRecycleBin(hWnd, rootPath, dwFlags)
end
In my action:
aEmpRecycleBin(nil, nil, 0)