| 558 | } |
| 559 | |
| 560 | XN_C_API XnStatus XN_C_DECL xnOSDeleteDirectoryTree(const XnChar* strDirName) |
| 561 | { |
| 562 | XnStatus nRetVal = XN_STATUS_OK; |
| 563 | |
| 564 | XN_VALIDATE_INPUT_PTR(strDirName); |
| 565 | |
| 566 | // file name must be double-null terminated |
| 567 | XnChar strDirNameDoubleNull[MAX_PATH+1]; |
| 568 | xnOSMemSet(strDirNameDoubleNull, 0, sizeof(strDirNameDoubleNull)); |
| 569 | nRetVal = xnOSStrCopy(strDirNameDoubleNull, strDirName, MAX_PATH); |
| 570 | XN_IS_STATUS_OK(nRetVal); |
| 571 | |
| 572 | SHFILEOPSTRUCT shOp; |
| 573 | shOp.hwnd = NULL; |
| 574 | shOp.wFunc = FO_DELETE; |
| 575 | shOp.pFrom = strDirNameDoubleNull; |
| 576 | shOp.pTo = NULL; |
| 577 | shOp.fFlags = FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_SILENT; |
| 578 | shOp.fAnyOperationsAborted = 0; |
| 579 | shOp.hNameMappings = NULL; |
| 580 | shOp.lpszProgressTitle = NULL; |
| 581 | |
| 582 | int ret = SHFileOperation(&shOp); |
| 583 | if (ret != 0) |
| 584 | { |
| 585 | return XN_STATUS_OS_FAILED_TO_DELETE_DIR; |
| 586 | } |
| 587 | |
| 588 | return (XN_STATUS_OK); |
| 589 | } |
| 590 | |
| 591 | XN_C_API XnStatus xnOSGetCurrentDir(XnChar* cpDirName, const XnUInt32 nBufferSize) |
| 592 | { |
nothing calls this directly
no test coverage detected