Projeto LuaCOM
--------------

1. BUGS urgentes
2. TODO

--------------------------------------
1. Bugs Urgentes
--------------------------------------


--------------------------------------
2. TODO
--------------------------------------

### Lista 1

- Curso de LuaCOM (incluindo como descobrir as interfaces dos componentes)

* Procurar implementar em Lua as novas funcionalidades do LuaCOM
	- Fazer funcao para exportar em html a documentacao de uma type library
	  j mostrando como aquelas coisas podem ser usadas a partir do Luacom
	  (por exemplo, mostrando que os propputs e propgets parametrizados devem
	  ser usados como funcoes)

* Implementar gerao automtica de IDL a partir de uma descrio de
  interfaces estruturada em Lua

- Permitir customizar a converso de tipos Lua -> COM, seja 
  via "type casts", seja via tag method de type conversion
  - Incluindo converso automtica de objetos Lua em objetos
    COM via tabela tag-typeinfo
  - Permitir para que tipo o luacom deve converter um objeto Lua
    (override do FUNCDESC)

- Permitir acessar documentacao a partir de www.tecgraf.puc-rio.br/luacom

- Implementar converso de um objeto COM em uma tabela Lua, caso
  o objeto COM resida no mesmo processo, thread e estado Lua

* Permitir a criao de type libraries usando o LuaCOM

* Permitir a implementao de servidores in process

- BUG: talvez o vbscript nao aceite SAFEARRAYS in-out por causa do LuaCOM criar
  sempre zero-based arrays


#### Lista 2

- Testar LuaCOM com free-threaded

- Resolver problema da ordem com que lua_close e OleUninitialize so chamados
  - Liberar tudo no luacom_close

- Melhorar performance 
  - diminuir alocao dinmica de memria - FUNCDESC's, strings etc
  - Fazer cache de FUNCDESCs, resolvendo o problema dos objetos criados e destrudos implicitamente
  - Melhorar tratamento de SAFEARRAYs (trocar Get e Put element, so muito lentos)

- Implementar o UnRegister, para facilitar testes sem deixar
  lixo no Registry

- Fazer teste de cobertura (cuidado especial com os objetos sem typeinfo)  

- Testar string2safearray, omisso de argumentos, funes com parmetros de
  sada mas sem return value, testar com parmetros com valor default, testar
  passar array com tipo errado para VB (nmero de um tipo ao invs de outro),

- Colocar um meio de especificar/retornar DATE/TIME com tabelas

- Permitir que eventos gerados no LuaCOM possam utilizar parmetros
  de sada quando houver apenas um connection point

- Tirar arquivos intermediarios do CVS

- Colocar todos os exemplos da documentacao na arvore, para
  evitar furos (compil-los)


##### Lista 3

- Permitir uso de objetos implementados em LuaCOM atravs de
  pginas HTML com VBScript (tem que permitir algum tipo de
  persistncia -- talvez permitir mais de um getObject de
  cada vez)

- proput parametrizado: no  suportado fazer um propput parametrizado via
  tLuaDispatch em um campo que no seja tabela (por exemplo, um userdata).

- Implementar um controle OLE genrico baseado em NativeCanvas

- Testar implementacao de objeto COM usando userdatas
  * Acho que j funciona (tolua)

- Permitir mais de um connection point

- Implementao de passagem/recebimento de parmetros vararg
  * Parece pouco importante
 
- Testar uso do LuaCOM com mltiplos estados Lua

- Permitir que aplicao cliente obtenha o ponteiro IDispatch de um objeto
  LuaCOM

- Acertar property get e put em tLuaDispatch, especialmente no caso dos
  indexados        

- remover lua_ref
