LRESULT CALLBACK MainDlgProc(HWND hDlg,UINT uMsg,WPARAM wP,LPARAM lP)
{
static HWND hLV;
switch (uMsg) {
case WM_INITDIALOG:
  hLV = GetDlgItem(hDlg,IDC_LIST);
  InitializeLV(hLV);
  break;
  ....
として自作関数InitializeLVの中でさらに別関数を呼ぶ時に、
InitializeLVの引数であるhLVをそのまま渡しているんですが
たらい回しみたいで変な感じがするんですがこれは普通なんでしょうか?
実際はInitializeLVからリスト構造にアイテムを追加する関数を
呼んでいるのでMainDlgProcで宣言したリストの先頭アドレスも
渡しています。